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