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.0">
<title>曲水护田 · 三维改道引汛</title>
<link href="https://fonts.googleapis.com/css2?family=ZCOOL+KuaiLe&family=Noto+Sans+SC:wght@400;500;700;900&display=swap" rel="stylesheet">
<style>
:root{
--ink:#0c1f16; --panel:rgba(9,24,17,.86); --paper:#f4ecd0; --dim:#b9d2b0;
--river:#5fd0ff; --earth:#ffc95e; --alert:#ff5d47; --leaf:#a3d14e;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#0a1a12;color:var(--paper);
font-family:'Noto Sans SC',sans-serif;user-select:none;-webkit-user-select:none}
canvas#scene{position:fixed;inset:0;display:block;cursor:crosshair}
.disp{font-family:'ZCOOL KuaiLe',cursive}
#hud{position:fixed;inset:0;pointer-events:none;z-index:10}
#hud>*{pointer-events:auto}
.panel{position:absolute;background:var(--panel);border:1px solid rgba(244,236,208,.16);
border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.38);backdrop-filter:blur(6px)}
#topLeft{left:14px;top:14px;padding:12px 16px;min-width:236px}
#lvlName{font-family:'ZCOOL KuaiLe';font-size:24px;letter-spacing:2px;color:#ffe9a8;line-height:1.1}
#lvlGoal{font-size:12.5px;color:var(--dim);margin-top:4px}
.statRow{display:flex;justify-content:space-between;gap:14px;font-size:13px;margin-top:6px}
.statRow b{font-weight:700}
#cropVal{color:var(--leaf)} #cropVal.low{color:var(--alert)}
#flowVal{color:var(--river)}
#timerBox{left:50%;top:14px;transform:translateX(-50%);padding:8px 26px 10px;text-align:center;display:none}
#timerLabel{font-size:11px;letter-spacing:4px;color:var(--dim)}
#timerVal{font-family:'ZCOOL KuaiLe';font-size:38px;letter-spacing:3px;color:#ffe9a8;line-height:1.05}
#drainVal{font-size:12px;color:var(--river)}
#timerBox.urgent #timerVal{color:var(--alert);animation:pulse .6s infinite}
#timerBox.doomed #timerLabel{color:var(--alert)}
@keyframes pulse{50%{opacity:.45}}
#mapPanel{right:14px;top:14px;padding:8px 8px 5px}
#mapPanel .cap{font-size:11px;letter-spacing:3px;color:var(--dim);text-align:center;margin-top:3px}
#minimap{width:180px;height:120px;display:block;border-radius:8px;image-rendering:pixelated;background:#123}
#toolbar{left:14px;bottom:14px;padding:12px 14px;display:flex;gap:14px;align-items:center}
.tool{width:62px;height:66px;border-radius:12px;border:1px solid rgba(244,236,208,.22);
background:rgba(255,255,255,.05);color:var(--paper);cursor:pointer;display:flex;flex-direction:column;
align-items:center;justify-content:center;gap:2px;transition:transform .16s,box-shadow .16s,border-color .16s}
.tool .ic{font-size:22px;line-height:1}
.tool .lb{font-size:12px}
.tool:hover{transform:translateY(-3px)}
.tool.sel{border-color:var(--river);box-shadow:0 0 0 2px rgba(95,208,255,.35),0 8px 18px rgba(0,0,0,.3);transform:translateY(-3px)}
.tblock{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--dim)}
#brushSize{width:96px;accent-color:var(--earth)}
.bar{width:170px;height:10px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#8a5a2c,var(--earth));transition:width .15s}
#budgetVal{color:var(--earth);font-weight:700}
#rightCtl{right:14px;bottom:14px;padding:12px;width:224px;display:flex;flex-direction:column;gap:9px}
.pTitle{font-size:11px;letter-spacing:4px;color:var(--dim)}
.btn{font-family:'ZCOOL KuaiLe';font-size:19px;letter-spacing:2px;padding:9px 14px;border-radius:12px;
border:1px solid rgba(244,236,208,.25);background:#2a4436;color:var(--paper);cursor:pointer;
transition:transform .16s,box-shadow .16s,filter .16s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.35);filter:brightness(1.1)}
.btn:active{transform:translateY(1px)}
.btn.sm{font-size:14px;padding:7px 8px;flex:1}
#gateBtn{font-size:24px;padding:12px;background:linear-gradient(#ff8a52,#e6402e);border-color:#ffd9c2;
animation:gateGlow 1.6s infinite}
@keyframes gateGlow{50%{box-shadow:0 0 26px rgba(255,95,60,.75)}}
#gateBtn.spent{animation:none;background:#3c4a42;border-color:#5a6a60;color:#9ab0a2;cursor:default}
.rowBtns{display:flex;gap:8px}
#hintMini{font-size:11px;color:var(--dim);text-align:center}
#toasts{position:fixed;top:92px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;
gap:8px;align-items:center;pointer-events:none;z-index:30}
.toast{background:rgba(12,28,20,.94);border:1px solid rgba(244,236,208,.3);padding:8px 18px;border-radius:999px;
font-size:14px;animation:tIn .28s ease-out, tOut .4s 2.6s forwards}
.toast.warn{border-color:var(--earth);color:var(--earth)}
.toast.bad{border-color:var(--alert);color:#ff8d7d}
.toast.good{border-color:#8be39a;color:#8be39a}
@keyframes tIn{from{opacity:0;transform:translateY(-10px) scale(.9)}}
@keyframes tOut{to{opacity:0;transform:translateY(-8px)}}
#phaseBanner{position:f.........完整代码请登录后点击上方下载按钮下载查看















网友评论0