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,viewport-fit=cover">
<title>挖机大师 · Three.js 挖掘机作业游戏</title>
<link href="https://fonts.googleapis.com/css2?family=ZCOOL+QingKe+HuangYou&family=Noto+Sans+SC:wght@400;500;700;900&display=swap" rel="stylesheet">
<style>
:root{
--yel:#ffc21a; --org:#ff6a1a; --ink:#15161a; --panel:#1b1d22; --line:#3a3e46;
--txt:#e8eaee; --sub:#9aa0ab; --dirt:#8a5a2b;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#0e0f12;
font-family:'Noto Sans SC',sans-serif;color:var(--txt);user-select:none}
canvas{display:block}
.disp{font-family:'ZCOOL QingKe HuangYou','Noto Sans SC',sans-serif;font-weight:400}
/* ============ HUD ============ */
#hud{position:fixed;inset:0;pointer-events:none;z-index:10}
.plate{position:relative;background:linear-gradient(180deg,#21242b,#17191d);
border:1px solid var(--line);padding:10px 16px 12px;
clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
box-shadow:0 8px 24px rgba(0,0,0,.45)}
.plate::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--yel)}
.lbl{font-size:11px;letter-spacing:3px;color:var(--sub);font-weight:700}
#plate-score{position:absolute;top:16px;left:16px;min-width:210px}
#elScore{font-size:44px;line-height:1.05;color:var(--yel);text-shadow:3px 3px 0 #000}
.chips{display:flex;gap:8px;margin-top:6px}
.chip{background:#0e0f12;border:1px solid var(--line);padding:3px 10px;font-size:12px;font-weight:700;color:#cfd3da}
.chip b{color:var(--org)}
#plate-truck{position:absolute;top:16px;right:16px;width:250px}
#plate-truck h3{margin:0 0 8px;font-size:16px;letter-spacing:1px}
#plate-truck h3 span{color:var(--org)}
.bar{height:15px;background:#0c0d10;border:1px solid #000;position:relative;overflow:hidden}
.bar i{position:absolute;left:0;top:0;bottom:0;width:0%;
background:repeating-linear-gradient(-45deg,var(--yel) 0 8px,var(--org) 8px 16px);
transition:width .15s linear}
#elTruckTxt{font-size:12px;color:var(--sub);margin-top:5px;font-weight:700;letter-spacing:1px}
#gauge{position:absolute;right:20px;top:50%;transform:translateY(-50%);text-align:center}
#gauge .frame{width:26px;height:150px;background:#0c0d10;border:2px solid var(--line);
position:relative;margin:6px auto;clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%)}
#gauge .frame i{position:absolute;left:0;right:0;bottom:0;height:0%;background:linear-gradient(180deg,var(--yel),var(--org));transition:height .12s}
#gauge .lbl{writing-mode:vertical-lr;letter-spacing:5px;margin:0 auto}
#elBucketPct{font-size:13px;font-weight:900;color:var(--yel)}
#plate-help{position:absolute;left:16px;bottom:16px;width:250px;pointer-events:auto}
#plate-help .head{display:flex;justify-content:space-between;align-items:center;cursor:pointer}
#plate-help .head h3{margin:0;font-size:14px;letter-spacing:2px}
#helpTgl{background:var(--yel);color:#000;border:0;width:22px;height:22px;font-weight:900;cursor:pointer}
#helpBody{max-height:240px;overflow:hidden;transition:max-height .35s ease;margin-top:8px}
#plate-help.collapsed #helpBody{max-height:0;margin-top:0}
.krow{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#c9cdd4;margin:5px 0}
.k{display:inline-block;min-width:24px;text-align:center;border:1px solid #565b64;border-bottom:3px solid #565b64;
border-radius:4px;padding:1px 7px;background:#26282e;font-weight:900;font-size:12px;color:#fff}
#btns{position:absolute;right:16px;bottom:16px;display:flex;gap:10px;pointer-events:auto}
#btns button{width:52px;height:52px;background:var(--yel);border:0;color:#111;cursor:pointer;
font-weight:900;font-size:15px;font-family:inherit;box-shadow:0 4px 0 #8a6400;
clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px));
transition:transform .1s}
#btns button:hover{transform:translateY(-2px)}
#btns button:active{transform:translateY(2px);box-shadow:0 1px 0 #8a6400}
#banner{position:absolute;top:14%;left:50%;transform:translate(-50%,-30px);opacity:0;
background:linear-gradient(180deg,#23262d,#17191d);border:1px solid var(--line);
padding:12px 26px 13px 34px;min-width:300px;text-align:center;transition:.4s cubic-bezier(.2,.9,.3,1.3);
clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px))}
#banner::before{content:"";position:absolute;left:0;top:0;bottom:0;width:14px;
background:repeating-linear-gradient(-45deg,var(--yel) 0 9px,#15161a 9px 18px)}
#banner.show{transform:translate(-50%,0);opacity:1}
#bTitle{font-size:26px;color:var(--yel);text-shadow:2px 2px 0 #000}
#bSub{font-size:13px;color:var(--sub);margin-top:2px;font-weight:700}
.pop{position:absolute;transform:translate(-50%,-50%);font-family:'ZCOOL QingKe HuangYou.........完整代码请登录后点击上方下载按钮下载查看















网友评论0