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">
<title>塔台 · 迷你机场调度</title>
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=Noto+Sans+SC:wght@400;500;700;900&display=swap" rel="stylesheet">
<style>
:root{--amber:#ffb54d;--green:#41e88a;--cyan:#79d8ff;--red:#ff5f56;--panel:rgba(11,19,29,.9);--line:#24405a;--dim:#7c93a4}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden;background:#0a1118;font-family:'Noto Sans SC',sans-serif;color:#d7e6ef;user-select:none}
#app{position:fixed;inset:0}
canvas.webgl{position:absolute;inset:0;display:block}
.hud{position:absolute;z-index:5}
.panel{background:linear-gradient(180deg,rgba(14,24,36,.92),rgba(8,14,22,.9));border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
/* ---------- 顶栏 ---------- */
#topbar{top:12px;left:12px;right:12px;display:flex;justify-content:space-between;gap:10px;pointer-events:none}
.cluster{display:flex;align-items:center;gap:16px;padding:8px 16px;pointer-events:auto}
.stat label{display:block;font-size:9px;letter-spacing:2px;color:var(--dim)}
.big{font-family:Orbitron;font-weight:900;font-size:26px;color:var(--amber);line-height:1;text-shadow:0 0 14px rgba(255,181,77,.35)}
.big.pop{animation:pop .35s}
@keyframes pop{40%{transform:scale(1.25)}}
#lives span{font-size:17px;margin-right:3px;color:var(--green);text-shadow:0 0 8px rgba(65,232,138,.5)}
#lives span.dead{color:#3a2530;text-shadow:none;transform:scale(.85)}
.pill{font-size:11px;padding:4px 10px;border:1px solid var(--line);border-radius:20px;color:var(--dim);white-space:nowrap}
.pill.ok{color:var(--green);border-color:#1d5c3c}
.pill.bad{color:var(--red);border-color:#6b2a2a;animation:blink 1s steps(2) infinite}
#clock{font-family:Orbitron;font-size:20px;font-weight:700;color:var(--cyan);letter-spacing:2px}
.center{flex-direction:column;gap:5px;align-items:center}
.cRow{display:flex;gap:8px;align-items:center}
.iconBtn{pointer-events:auto;background:#12202e;border:1px solid var(--line);color:#cfe2ee;width:34px;height:30px;border-radius:5px;cursor:pointer;font-size:14px;transition:.15s}
.iconBtn:hover{border-color:var(--amber);transform:translateY(-1px)}
/* ---------- 雷达 ---------- */
#radarBox{left:12px;bottom:12px;padding:8px;pointer-events:none}
#radarBox .t{font-family:Orbitron;font-size:9px;letter-spacing:2px;color:#57d98e;margin-bottom:5px;display:flex;justify-content:space-between}
#radar{display:block;width:212px;height:212px;border-radius:50%}
/* ---------- 日志 ---------- */
#log{right:12px;bottom:12px;width:295px;display:flex;flex-direction:column;gap:5px;pointer-events:none}
.entry{background:rgba(9,16,25,.85);border:1px solid #1c3040;border-left:3px solid var(--cyan);padding:6px 9px;font-size:12px;border-radius:3px;animation:slideIn .3s;color:#b9cfdd}
.entry.good{border-left-color:var(--green);color:#c9f4dd}
.entry.bad{border-left-color:var(--red);color:#ffd2ce}
.entry.warn{border-left-color:var(--amber);color:#ffe4bb}
@keyframes slideIn{from{opacity:0;transform:translateX(24px)}}
/* ---------- 选中面板 ---------- */
#panel{left:50%;bottom:14px;transform:translateX(-50%);min-width:400px;max-width:520px;border-top:2px solid var(--amber)}
#panelEmpty{padding:13px 22px;text-align:center;font-size:13px;color:#a8bfce}
#panelEmpty span{display:block;font-size:10px;color:var(--dim);margin-top:3px;letter-spacing:1px}
#panelInfo{padding:10px 16px 13px}
.head{display:flex;align-items:baseline;gap:10px}
#acCode{font-family:Orbitron;font-weight:900;font-size:21px;color:#fff;letter-spacing:1px}
#acName{font-size:11px;color:var(--dim)}
#btnDesel{margin-left:auto;background:none;border:1px solid var(--line);color:var(--dim);width:24px;height:24px;border-radius:4px;cursor:pointer}
#btnDesel:hover{color:var(--red);border-color:var(--red)}
.row{display:flex;gap:22px;margin:9px 0 4px}
.row label{font-size:9px;letter-spacing:2px;color:var(--dim);display:block}
.row b{font-family:Orbitron;font-size:16px;font-weight:700;color:var(--cyan)}
#acStat{font-family:'Noto Sans SC';font-size:13px!important;color:var(--amber)!important}
.pat{height:4px;background:#1a2c3c;border-radius:2px;overflow:hidden;margin:4px 0 8px;display:none}
.pat i{display:block;height:100%;background:var(--amber);transition:width .3s}
#acBtns{display:flex;gap:8px;flex-wrap:wrap}
.btn{font-family:'Noto Sans SC';font-weight:700;font-size:13px;padding:8px 18px;border-radius:5px;border:1px solid var(--line);background:#152536;color:#cfe2ee;cursor:pointer;transition:.15s}
.btn:hover{transform:translateY(-1px);border-color:var(--cyan)}
.btn.primary{background:var(--amber);border-color:var(--amber);color:#241503;box-shadow:0 4px 18px rgba(255,181,77,.3)}
.btn.primary:hover{background:#ffc76e}
.btn.warn{background:#5a1d1d;border-color:#a33;color:#ffd9d5}
.btn.warn:hover{background:#7c2727}
.btn.big{font-size:17px;padding:13px 42px;letter-spacing:4px}
/* ---------- 标签 ---------- */
#labels{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.tag{position:absolute;left:0;top:0;pointer-events:auto;cursor:pointer;font:11px/1.3 'Noto Sans SC';background:rgba(8,14,22,.8);border:1px solid #2a4258;border-left:3px solid var(--cyan);padding:3px 8px 4px;border-radius:3px;white-space:nowrap;transition:border-color .2s}
.tag b{font-family:Orbitron;font-size:10px;letter-spacing:.5px;color:#eaf6ff;display:block}
.tag span{color:#8fa8ba;font-size:10px}
.tag .pat{margin:3px 0 0}
.tag.hold{border-left-color:var(--amber)}
.tag.hold .pat{display:block}
.tag.final{border-left-color:var(--green)}
.tag.dep{border-left-color:#e08ad8}
.tag.gnd{border-left-color:#8fa4b2}
.tag.sel{border-color:var(--amber);box-shadow:0 0 14px rgba(255,181,77,.4)}
.tag.alert{animation:blink .45s.........完整代码请登录后点击上方下载按钮下载查看















网友评论0