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>推山填海 · BULLDOZER EARTHWORKS</title>
<link href="https://fonts.googleapis.com/css2?family=ZCOOL+QingKe+HuangYou&family=Chakra+Petch:wght@400;600;700&family=Noto+Sans+SC:wght@400;700&display=swap" rel="stylesheet">
<style>
:root{
--yellow:#f7b32b; --yellow2:#d99a10; --ink:#14110d; --panel:#1d1915;
--paper:#f2ecdf; --orange:#ff6a2b; --red:#ff4b33; --green:#9ed356;
--line:rgba(247,179,43,.42);
--chamfer:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden}
body{background:#14110d;color:var(--paper);font-family:'Chakra Petch','Noto Sans SC',sans-serif;-webkit-user-select:none;user-select:none}
canvas{display:block}
.disp{font-family:'ZCOOL QingKe HuangYou','Noto Sans SC',sans-serif;font-weight:400}
/* ---------- 通用面板 ---------- */
.panel{position:relative;background:linear-gradient(160deg,rgba(30,26,20,.94),rgba(20,17,13,.92));
border:1px solid var(--line);clip-path:var(--chamfer);padding:14px 16px 12px}
.panel::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;
background:repeating-linear-gradient(45deg,var(--yellow) 0 9px,#171410 9px 18px)}
.panel .p-label{font-size:10px;letter-spacing:.28em;color:rgba(242,236,223,.55);text-transform:uppercase}
/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:0;transition:opacity .6s}
#hud.on{opacity:1}
#vignette{position:fixed;inset:0;pointer-events:none;z-index:5;
background:radial-gradient(ellipse at 50% 45%,transparent 55%,rgba(10,7,4,.5) 100%)}
#missionPanel{position:absolute;top:16px;left:16px;width:308px}
#missionPanel .head{display:flex;justify-content:space-between;align-items:baseline;margin:4px 0 6px}
#missionPanel .order{font-size:26px;color:var(--yellow);letter-spacing:.05em}
#missionPanel .shift{font-size:12px;border:1px solid var(--line);padding:2px 8px;color:var(--paper)}
#missionPanel .obj{font-size:13px;color:rgba(242,236,223,.85);margin-bottom:8px}
#missionPanel .obj b{color:var(--yellow)}
.bar{height:16px;background:#0d0b08;border:1px solid rgba(247,179,43,.3);position:relative;overflow:hidden}
.bar .fill{height:100%;width:0%;transition:width .35s;
background:repeating-linear-gradient(45deg,var(--yellow) 0 12px,var(--yellow2) 12px 24px);
animation:march 1s linear infinite}
@keyframes march{to{background-position:34px 0}}
#missionPanel .row{display:flex;justify-content:space-between;font-size:12px;margin-top:6px;color:rgba(242,236,223,.7)}
#missionPanel .row b{color:var(--paper)}
#pitArrowBox{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(247,179,43,.25);font-size:12px}
#pitArrow{display:inline-block;color:var(--orange);font-size:16px;transition:transform .15s linear}
#pitDist{color:rgba(242,236,223,.7)}
#scorePanel{position:absolute;top:16px;right:16px;min-width:196px;text-align:right}
#scorePanel .big{font-size:38px;line-height:1;color:var(--yellow);font-weight:700;letter-spacing:.02em}
#scorePanel .big.pop{animation:pop .35s ease}
@keyframes pop{40%{transform:scale(1.22);color:#fff}}
#scorePanel .time{font-size:30px;font-weight:700;margin-top:6px}
#scorePanel .time.danger{color:var(--red);animation:blink .5s steps(2) infinite}
@keyframes blink{50%{opacity:.35}}
#muteBtn{pointer-events:auto;position:absolute;left:12px;top:10px;background:none;border:1px solid var(--line);
color:var(--paper);width:28px;height:28px;cursor:pointer;font-size:13px;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
#muteBtn:hover{background:rgba(247,179,43,.15)}
#controlsPanel{position:absolute;bottom:16px;left:16px;width:262px;font-size:12px;line-height:2.05}
#controlsPanel .p-label{margin-bottom:6px;display:block}
kbd{display:inline-block;min-width:22px;text-align:center;padding:0 6px;margin:0 2px;
background:#28231c;border:1px solid rgba(247,179,43,.45);border-bottom-width:3px;
font-family:'Chakra Petch';font-size:11px;color:var(--yellow)}
#controlsPanel span.t{color:rgba(242,236,223,.75);margin-right:8px}
#dock{position:absolute;right:16px;bottom:16px;display:flex;gap:12px;align-items:flex-end}
#mapPanel{padding:10px 10px 8px}
#mapPanel .p-label{display:block;margin:2px 0 6px}
#minimap{display:block;border:1px solid rgba(247,179,43,.35);image-rendering:pixelated;background:#241c12}
#bladePanel{width:172px}
#bladePanel .p-label{display:block;margin:4px 0 8px}
#gaugeWrap{display:flex;gap:10px;align-items:stretch}
#gauge{position:relative;width:14px;height:128px;border:1px solid rgba(247,179,43,.4);
background:linear-gradient(to top,#ff4b33 0 26%,var(--yellow) 26% 58%,var(--green) 58% 100%)}
#gauge .tick{position:absolute;left:0;right:0;border-top:1px solid rgba(0,0,0,.45)}
#needle{position:absolute;left:-5px;right:-5px;height:3px;background:#fff;box-shadow:0 0 6px #fff;bottom:50%;transition:bottom .08s linear}
#gaugeLabels{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:rgba(242,236,223,.75);padding:1px 0}
#loadBox{margin-top:10px}
#loadBox .cap{display:flex;justify-content:space-between;font-size:11px;margin-bottom:4px}
#loadBar{height:12px;background:#0d0b08;border:1px solid rgba(247,179,43,.3);overflow:hidden}
#loadFill{height:100%;width:0%;background:var(--yellow);transition:width .12s,background .3s}
#loadFill.hot{background:var(--orange)} #loadFill.full{background:var(--red);animation:blink .4s steps(2) infinite}
#speedo{margin-top:8px;font-size:12px;color:rgba(242,236,223,.7)}
#speedo b{color:var(--paper);font-size:15px}
#toast{position:fixed;top:18px;left:50%;transform:translate(-50%,-160%);z-index:30;
transition:transform .5s cubic-bezier(.2,1.4.........完整代码请登录后点击上方下载按钮下载查看















网友评论0