three实现三维车子走迷宫闯关游戏代码
代码语言:html
所属分类:三维
代码描述:three实现三维车子走迷宫闯关游戏代码,点击放大的黄色圆环切换道岔方向,指示箭头为当前导向;将列车送到紫色环形“目标出口”即可计数。
代码标签: three 实现 三维 车子 走 迷宫 闯关 游戏 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8" /> <title>列车变轨 - Three.js</title> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" /> <style> html, body { margin: 0; height: 100%; overflow: hidden; background: #0e0f12; color: #e9eef3; font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; user-select: none; } #hud { position: fixed; top: 12px; left: 12px; right: 12px; display: flex; align-items: center; gap: 14px; pointer-events: none; z-index: 10; } .pill { background: rgba(20,25,30,0.75); border: 1px solid rgba(255,255,255,0.08); padding: 8px 12px; border-radius: 10px; pointer-events: auto; box-shadow: 0 8px 20px rgba(0,0,0,0.25); backdrop-filter: blur(6px); } .btn { cursor: pointer; color: #111; background: linear-gradient(180deg,#ffd34d,#ffb12a); border: none; font-weight: 700; padding: 8px 12px; border-radius: 10px; box-shadow: 0 4px 14px rgba(255,177,42,0.35); transition: transform .06s ease; pointer-events: auto; } .btn:active { transform: translateY(1px); } #panel-right { margin-left: auto; display: flex; gap: 8px; pointer-events: auto; } #msg { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 20px; font-weight: 700; padding: 14px 18px; border-radius: 12px; background: rgba(15,17,20,0.8); border: 1px solid rgba(255,255,255,0.08); box-shadow: 0 12px 30px rgba(0,0,0,0.35); text-align: center; white-space: pre-line; display: none; z-index: 12; } #help { position: fixed; bottom: 10px; left: 50%; transform: translateX(-50%); font-size: 13px; opacity: 0.9; background: rgba(20,25,30,0.6); border: 1px solid rgba(255,255,255,0.07); padding: 6px 10px; border-radius: 10px; z-index: 10; pointer-events: none; } a { color: #aee1ff; text-decoration: none; } </style> </head> <body> <div id="hud"> <div class="pill" id="stats"> 关卡: <span id="level">1</span> | 目标送达: <span id="target">0</span> | 已送达: <span id="delivered">0</span> | 在途列车: <span id="active">0</span> | 目标出口仅1个 </div> <div class="pill" id="tips"> 点击放大的黄色圆环切换道岔方向,指示箭头为当前导向;将列车送到紫色环形“目标出口”即可计数。 </div> <div id="panel-right"> <button class="btn" id="btnStart">开始</button> <button class="btn" id="btnPause">暂停</button> <button class="btn" id="btnRestart">重开</button> <button class="btn" id="btnNext">下一关</button> </div> </div> <div id="help">空格/P:暂停 | R:重开 | N:下一关</div> <div id="msg"></div> <!-- Three.js(https 显式协议) --> <script type="text/javascript" src="https://repo.bfw.wiki/bfwrepo/js/three.146.js"></script> <script type="text/javascript" src="https://repo.bfw.wiki/bfwrepo/js/OrbitControls.146.js"></script> <script> // ========= 基础三件套 ========= let scene, camera, renderer, controls, raycaster, mouse; let levelGroup; // 当前关卡所有物体的组,便于清理 let lastTime = 0, animHandle = null, clearTimer = null; const CLICK_TARGETS = []; // 可点击的道岔圆环 mesh // ========= 游戏数据 ========= const STATE = { MENU:0, RUN:1, PAUSE:2, OVER:3, CLEAR:4 }; let gameState = STATE.MENU; const HUD = { level: document.getElementById('level'), target: document.getElementById('target'), delivered: document.getElementById('delivered'), active: document.getElementById('active'), msg: document.getElementById('msg'), btnStart: document.getElementById('btnStart'), btnPause: document.getElementById('btnPause'), btnRestart: document.getElementById('btnRestart'), btnNext: document.getElementById('.........完整代码请登录后点击上方下载按钮下载查看
网友评论0