three实现三维飞机空中穿环游戏代码
代码语言:html
所属分类:其他
代码由glm-5.3-flash ai生成,可能有错误,仅供参考:点击查看提示词
代码描述:三维飞机空中穿环游戏
代码标签: 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, viewport-fit=cover">
<title>穿云者 · CLOUDRUNNER</title>
<style>
:root{
--glass:rgba(7,16,30,.60); --glass2:rgba(7,16,30,.42);
--stroke:rgba(150,200,255,.22);
--amber:#ffb347; --cyan:#7fe3ff; --green:#69f0a0; --red:#ff5964; --yellow:#ffd166;
--ink:#eaf4ff; --dim:#9db6cf;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;overflow:hidden;background:#04070d;color:var(--ink);
font-family:"Segoe UI",system-ui,-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
user-select:none;-webkit-user-select:none;touch-action:none;overscroll-behavior:none}
canvas{display:block}
#gl{position:fixed;inset:0;width:100vw;height:100vh;z-index:0}
#fx{position:fixed;inset:0;width:100vw;height:100vh;z-index:2;pointer-events:none}
#vig{position:fixed;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 52%,rgba(3,9,20,.5) 100%)}
#whiteout{position:fixed;inset:0;z-index:4;pointer-events:none;background:#edf2f7;opacity:0}
#flash{position:fixed;inset:0;z-index:5;pointer-events:none;background:#dffbff;opacity:0}
.hidden{display:none!important}
.num{font-family:ui-monospace,"SF Mono","Cascadia Mono",Consolas,"Courier New",monospace;font-variant-numeric:tabular-nums}
/* ============ HUD ============ */
#hud{position:fixed;inset:0;z-index:6;pointer-events:none}
.hpanel{position:absolute;background:var(--glass);border:1px solid var(--stroke);border-radius:12px;
backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:10px 14px;box-shadow:0 4px 18px rgba(0,0,0,.28)}
/* compass */
#compass{position:absolute;top:8px;left:50%;transform:translateX(-50%);width:300px;height:34px;overflow:hidden;
border-radius:10px;background:var(--glass2);border:1px solid var(--stroke);backdrop-filter:blur(4px)}
#tape{position:absolute;top:0;left:50%;height:100%}
#tape .tick{position:absolute;bottom:0;width:2px;height:8px;background:rgba(220,235,255,.5)}
#tape .tick.major{height:12px;background:rgba(220,235,255,.85)}
#tape .lab{position:absolute;top:2px;transform:translateX(-50%);font-size:11px;font-weight:600;color:var(--ink);letter-spacing:1px}
#tape .lab.card{color:var(--amber);font-size:12px}
#lubber{position:absolute;top:0;left:50%;transform:translateX(-50%);width:0;height:0;
border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--amber);z-index:2}
#hdg{position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--dim)}
/* top center timer */
#topcenter{position:absolute;top:46px;left:50%;transform:translateX(-50%);text-align:center}
#timer{font-size:32px;font-weight:700;letter-spacing:2px;text-shadow:0 2px 8px rgba(0,0,0,.5)}
#timer.warn{color:var(--red);animation:blink .6s infinite}
#tbar{width:250px;height:6px;margin:4px auto 2px;border-radius:3px;background:rgba(10,25,45,.6);border:1px solid var(--stroke);overflow:hidden}
#tbar-i{height:100%;width:100%;background:linear-gradient(90deg,#69f0a0,#ffb347);border-radius:3px;transition:background .3s}
#tbar-i.low{background:var(--red)}
#rprog{font-size:13px;color:var(--cyan);font-weight:600;letter-spacing:2px;text-shadow:0 1px 6px rgba(0,0,0,.6)}
/* top right status */
#sysbtns{position:absolute;top:8px;right:10px;display:flex;gap:6px;pointer-events:auto}
.sbtn{width:36px;height:36px;border-radius:9px;background:var(--glass);border:1px solid var(--stroke);
display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink)}
.sbtn:active{transform:scale(.93)}
.sbtn svg{width:18px;height:18px;fill:currentColor}
.sbtn.off{color:var(--dim);opacity:.7}
#stat{position:absolute;top:52px;right:10px;text-align:right;font-size:13px;line-height:1.5;background:var(--glass2);
border:1px solid var(--stroke);border-radius:10px;padding:8px 12px;backdrop-filter:blur(4px)}
#stat b{font-weight:600;color:var(--dim);margin-right:6px;font-size:11px}
#stat .v{font-weight:700}
#stat .v.amber{color:var(--amber)} #stat .v.cyan{color:var(--cyan)} #stat .v.green{color:var(--green)}
/* speed / throttle */
#asi{left:14px;bottom:14px;width:178px}
#spd{font-size:40px;font-weight:700;line-height:1}
#asi .unit,#alt .unit{font-size:11px;color:var(--dim);letter-spacing:1px}
.bar{height:8px;border-radius:4px;background:rgba(10,25,45,.6);border:1px solid var(--stroke);margin-top:6px;overflow:hidden;position:relative}
.bar i{display:block;height:100%;border-radius:4px}
#thrbar i{background:#69f0a0;width:60%}
#bstbar i{background:linear-gradient(90deg,#ffb347,#ff8a3d);width:100%}
.blabel{font-size:10px;color:var(--dim);margin-top:2px;letter-spacing:2px}
/* altitude */
#alt{right:14px;bottom:14px;width:178px;text-align:right}
#altv{font-size:40px;font-weight:700;line-height:1}
#vsiv{font-size:14px;margin-top:4px;font-weight:600}
#vsiv.up{color:var(--green)} #vsiv.dn{color:var(--yellow)}
/* artificial horizon */
#ahor{position:absolute;left:50%;top:63%;transform:translate(-50%,-50%);width:122px;height:122px;border-radius:50%;
overflow:hidden;border:3px solid rgba(230,240,255,.35);box-shadow:0 4px 20px rgba(0,0,0,.35);background:#22334a}
#ah-hor{position:absolute;left:50%;top:50%;width:300px;height:300px;margin-left:-150px;margin-top:-150px;border-radius:50%;
background:linear-gradient(to bottom,#5b9bd0 0%,#78b1de 48.6%,#ffffff 49.2%,#ffffff 50.8%,#8a6b3a 51.4%,#5e4a28 100%)}
#ah-sym{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:74px;height:14px;pointer-events:none}
#ah-sym::before{content:"";position:absolute;left:0;top:6px;width:30px;height:3px;background:var(--amber);border-radius:2px}
#ah-sym::after{content:"";position:absolute;right:0;top:6px;width:30px;height:3px;background:var(--amber);border-radius:2px}
#ah-sym i{position:absolute;left:50%;top:2px;transform:translateX(-50%);width:10px;height:10px;border-radius:50%;background:var(--amber)}
/* warnings */
#warns{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);margin-top:-96px;display:flex;flex-direction:column;gap:6px;align-items:center}
.warn{display:none;padding:4px 16px;border-radius:8px;font-size:14px;font-weight:800;letter-spacing:4px;
background:rgba(40,8,10,.72);border:1px solid currentColor}
.warn.on{display:block;animation:blink .7s infinite}
#w-stall,#w-terr{color:var(--red)} #w-storm{color:var(--yellow);background:rgba(46,34,4,.72)}
/* combo pop */
#pop{position:absolute;left:50%;top:36%;transform:translateX(-50%);font-size:30px;font-weight:800;color:var(--green);
text-shadow:0 0 18px rgba(105,240,160,.65),0 2px 8px rgba(0,0,0,.55);opacity:0;white-space:nowrap}
#pop.show{animation:pop 1s ease-out forwards}
/* nav arrow */
#arrow{position:absolute;left:0;top:0;display:none;text-align:center}
#arrow svg{width:30px;height:30px;filter:drop-shadow(0 0 6px rgba(127,227,255,.8))}
#arrow-d{font-size:12px;color:var(--cyan);font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.7)}
/* ============ overlays ============ */
.overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;
background:linear-gradient(rgba(4,10,20,.42),rgba(4,10,20,.66));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--amber) transparent}
.overlay::-webkit-scrollbar{width:9px}
.overlay::-webkit-scrollbar-track{background:transparent}
.overlay::-webkit-scrollbar-thumb{background:linear-gradient(#ffb347,#ff8a3d);border-radius:5px;border:2px solid transparent;background-clip:padding-box}
.modal{background:var(--glass);border:1px solid var(--stroke);border-radius:16px;padding:24px 30px;
backdrop-filter:blur(10px);box-shadow:0 10px 40px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:12px;align-items:center;max-width:92vw}
.btn{pointer-events:auto;cursor:pointer;border:1px solid var(--stroke);background:rgba(20,40,70,.55);color:var(--ink);
padding:10px 22px;border-radius:11px;font-size:15px;font-weight:600;letter-spacing:2px;font-family:inherit}
.btn:hover{border-color:var(--amber);color:var(--amber)}
.btn:active{transform:scale(.96)}
.btn.primary{background:linear-gradient(#ffb347,#ff8a3d);color:#221206;border:none;font-size:19px;padding:14px 58px;letter-spacing:8px;font-weight:800;
box-shadow:0 6px 24px rgba(255,150,50,.35)}
.btn.primary:hover{filter:brightness(1.08);color:#221206}
/* menu */
#menu .menu-card{max-width:760px;width:92vw;padding:30px 26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}
#title{font-size:58px;font-weight:900;letter-spacing:14px;padding-left:14px;
background:linear-gradient(180deg,#ffffff,#9fd4f2 60%,#5aa9d8);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
text-shadow:0 8px 30px rgba(80,160,230,.25)}
#subtitle{font-size:14px;letter-spacing:8px;color:var(--amber);font-weight:600}
.sect{font-size:12px;color:var(--dim);letter-spacing:4px;margin-top:6px}
.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.diff-card{pointer-events:auto;cursor:pointer;border:1px solid var(--stroke);border-radius:12px;padding:10px 18px;min-width:130px;
background:rgba(12,26,46,.5);text-align:center}
.diff-card:hover{border-color:rgba(255,179,71,.5)}
.diff-card.sel{border-color:var(--amber);box-shadow:0 0 14px rgba(255,179,71,.25);background:rgba(60,42,16,.4)}
.diff-card .dt{font-size:17px;font-weight:800;color:var(--ink)}
.diff-card.sel .dt{color:var(--amber)}
.diff-card .dd{font-size:11px;color:var(--dim);margin-top:3px}
.seg-btn{pointer-events:auto;cursor:pointer;border:1px solid var(--stroke);background:rgba(12,26,46,.5);color:var(--dim);
padding:7px 18px;border-radius:10px;font-size:13px;font-weight:600;letter-spacing:2px;font-family:inherit}
.seg-btn.sel{color:var(--cyan);border-color:var(--cyan);background:rgba(16,48,66,.55)}
.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 26px;text-align:left;font-size:12.5px;color:var(--dim);max-width:640px}
.help-grid .hrow{display:fl.........完整代码请登录后点击上方下载按钮下载查看















网友评论0