three实现三维第一人称体验月球跳跃重力体验代码
代码语言:html
所属分类:三维
代码描述:three实现三维第一人称体验月球跳跃重力体验代码
代码标签: three 三维 第一人称 体验 月球 跳跃 重力 体验 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>月面漫步 · LUNAR LEAP — 低重力出舱体验</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=Rajdhani:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
:root{
--bg:#020409; --ink:#e8eef7; --dim:#8fa3bd; --amber:#ffb454; --cyan:#7fd4ff;
--line:rgba(150,190,255,.22); --panel:rgba(7,11,19,.58);
--disp:'Orbitron','Rajdhani',sans-serif;
--body:'Rajdhani','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--ink);
font-family:var(--body);overscroll-behavior:none;-webkit-user-select:none;user-select:none}
canvas#scene{position:fixed;inset:0;display:block;touch-action:none}
/* ---------- 头盔面罩氛围 ---------- */
#visor{position:fixed;inset:0;pointer-events:none;z-index:5;
background:radial-gradient(ellipse at 50% 48%, transparent 52%, rgba(0,0,0,.28) 78%, rgba(0,0,0,.62) 100%)}
#scan{position:fixed;inset:0;pointer-events:none;z-index:6;opacity:.35;
background:repeating-linear-gradient(0deg, rgba(255,255,255,.028) 0 1px, transparent 1px 3px)}
/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;z-index:10;pointer-events:none}
#hud[hidden]{display:none}
.panel{position:absolute;background:var(--panel);border:1px solid var(--line);
padding:12px 16px;backdrop-filter:blur(4px);
clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
animation:panelIn .6s cubic-bezier(.2,.9,.3,1) both}
@keyframes panelIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.p-label{font-family:var(--disp);font-size:10px;letter-spacing:.28em;color:var(--dim);margin-bottom:6px}
.p-label b{color:var(--amber);font-weight:700}
#hudTL{top:22px;left:22px;min-width:172px}
.metric{display:flex;align-items:baseline;gap:8px;line-height:1}
.metric .num{font-family:var(--disp);font-weight:900;font-size:34px;color:var(--amber);
text-shadow:0 0 18px rgba(255,180,84,.35);font-variant-numeric:tabular-nums}
.metric .unit{font-size:12px;color:var(--dim);letter-spacing:.1em}
.metric.small .num{font-size:20px;color:var(--cyan);text-shadow:0 0 14px rgba(127,212,255,.3)}
.metric .tag{font-size:11px;color:var(--dim);margin-left:auto;letter-spacing:.18em}
#stateChip{display:inline-block;margin-top:8px;padding:2px 10px;font-family:var(--disp);
font-size:10px;letter-spacing:.24em;border:1px solid var(--line);color:var(--dim);transition:.25s}
#stateChip.air{color:var(--amber);border-color:rgba(255,180,84,.5);animation:blink 1s steps(2) infinite}
#stateChip.run{color:var(--cyan);border-color:rgba(127,212,255,.5)}
@keyframes blink{50%{opacity:.35}}
#tapeWrap{position:absolute;top:20px;left:50%;transform:translateX(-50%);text-align:center}
#tape{width:280px;height:34px;overflow:hidden;position:relative;
border-left:1px solid var(--line);border-right:1px solid var(--line);
background:linear-gradient(180deg,rgba(7,11,19,.5),rgba(7,11,19,.2));
-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);
mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
#tape::after{content:'';position:absolute;left:50%;top:0;width:1px;height:100%;background:var(--amber)}
#tapeInner{position:absolute;top:0;height:100%;will-change:transform}
#tapeInner i{position:absolute;bottom:6px;width:1px;background:var(--dim)}
#tapeInner i.ts{height:5px;opacity:.5}
#tapeInner i.tm{height:9px;opacity:.8}
#tapeInner i.tM{height:13px;background:var(--amber)}
#tapeInner b{position:absolute;top:2px;transform:translateX(-50%);font-family:var(--disp);
font-size:10px;font-weight:700;color:var(--ink)}
#hdg{font-family:var(--disp);font-size:11px;letter-spacing:.2em;color:var(--cyan);margin-top:4px}
#hudTR{top:22px;right:22px;min-width:180px;text-align:right;animation-delay:.08s}
.stat{display:flex;justify-content:space-between;gap:18px;font-size:13px;color:var(--dim);
padding:2px 0;letter-spacing:.08em}
.stat b{font-family:var(--disp);font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.stat b.hot{color:var(--amber)}
#rec{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-top:8px;
font-family:var(--disp);font-size:10px;letter-spacing:.22em;color:var(--dim)}
#rec i{width:7px;height:7px;border-radius:50%;background:#ff5d5d;animation:blink 1.4s steps(2) infinite}
#hudBL{bottom:22px;left:22px;font-size:12px;color:var(--dim);letter-spacing:.1em;animation-delay:.16s}
#hudBL kbd{font-family:var(--disp);font-size:10px;border:1px solid var(--line);padding:1px 6px;
margin-right:2px;color:var(--ink);background:rgba(255,255,255,.04)}
#hudBL .row{margin-top:5px}
#hudBR{bottom:22px;right:22px;min-width:196px;animation-delay:.24s}
.nav{display:flex;align-items:center;gap:10px;padding:4px 0}
.nav .arrow{width:14px;height:14px;flex:none;transition:transform .15s linear;
clip-path:polygon(50% 0,100% 100%,50% 74%,0 100%);background:var(--cyan)}
.nav.beacon .arrow{background:var(--amber)}
.nav .name{font-size:12px;letter-spacing:.18em;color:var(--dim);width:52px}
.nav .dist{font-family:var(--disp);font-weight:700;font-size:14px;margin-left:auto;font-variant-numeric:tabular-nums}
.nav.flash .dist{animation:flashGold .8s ease 3}
@keyframes flashGold{50%{color:var(--amber);text-shadow:0 0 16px rgba(255,180,84,.8)}}
#crosshair{position:absolute;left:50%;top:50%;transform:transl.........完整代码请登录后点击上方下载按钮下载查看















网友评论0