three实现三维城市街道暴雨疏通出水口游戏代码
代码语言:html
所属分类:游戏
代码描述:three实现三维城市街道暴雨疏通出水口游戏代码,核心循环:雨量随时间增强,水位持续上涨;每个疏通的排水口提供排水量,6 个全部疏通后水位回落至安全线即胜利,漫过 100% 则失败。 找排水口:堵塞点有红色光柱 + 地面光圈,右上角小地图实时显示红点(脉冲)和你的朝向。 清理机制:靠近后长按 E,进度条松开会缓慢回退,每个口耗时随机 1.6~2.8 秒。 积水表现:10 处低洼水洼按水位阈值依次浮现并扩大 → 水位超过阈值后全场水面升起并漫过地面;同时地面材质随湿度逐渐变暗变"湿"。
代码标签: 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">
<meta name="theme-color" content="#0a111c">
<title>雨夜抢险 · 积水模拟</title>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&family=ZCOOL+KuaiLe&display=swap" rel="stylesheet">
<style>
:root{
--cyan:#57d7ff; --amber:#ffb454; --danger:#ff5d5d; --ok:#3ce08a;
--panel:rgba(9,16,26,.78); --line:rgba(120,180,225,.28);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{width:100%;height:100%;overflow:hidden;background:#05080d;
font-family:"Noto Sans SC",system-ui,sans-serif;color:#dfeaf4;user-select:none}
canvas{display:block}
#vignette{position:fixed;inset:0;pointer-events:none;z-index:3;
background:radial-gradient(ellipse at center,transparent 55%,rgba(2,5,10,.55) 100%)}
#flash{position:fixed;inset:0;pointer-events:none;z-index:4;background:#dfeaff;opacity:0}
#hud{position:fixed;inset:0;pointer-events:none;z-index:5}
.panel{position:absolute;background:var(--panel);border:1px solid var(--line);
border-radius:10px;backdrop-filter:blur(6px);box-shadow:0 6px 24px rgba(0,0,0,.4)}
#leftPanel{top:16px;left:16px;padding:14px 16px;min-width:280px}
#leftPanel h3{font-family:"ZCOOL KuaiLe",cursive;font-size:19px;letter-spacing:2px;
color:var(--amber);margin-bottom:4px}
#leftPanel p{font-size:12px;color:#9db6c9;margin-bottom:10px;line-height:1.6}
#leftPanel p b{color:var(--danger)}
.gaugeRow{display:flex;align-items:center;gap:8px;font-size:12px}
#gaugeWrap{flex:1;height:12px;background:rgba(255,255,255,.07);
border:1px solid rgba(140,190,230,.35);border-radius:6px;position:relative;overflow:hidden}
#gaugeFill{height:100%;width:6%;background:var(--cyan);transition:width .2s,background .3s}
#gaugeFill.warn{background:var(--amber)}
#gaugeFill.danger{background:var(--danger);animation:pulse .5s infinite alternate}
@keyframes pulse{from{filter:brightness(.85)}to{filter:brightness(1.35)}}
#lvlTxt{width:52px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:var(--cyan)}
#gaugeCap{font-size:10px;color:#6f8aa3;margin-top:4px;letter-spacing:.5px}
#lvlState{margin-top:6px;font-size:12px;font-weight:700;letter-spacing:1px}
#lvlState.ok{color:var(--cyan)} #lvlState.warn{color:var(--amber)}
#lvlState.danger{color:var(--danger);animation:pulse .5s infinite alternate}
#rightPanel{top:16px;right:16px;padding:12px;text-align:center}
#minimap{width:150px;height:150px;border-radius:8px;border:1px solid var(--line)}
#rightPanel .stats{margin-top:8px;font-size:12px;line-height:1.7;text-align:left}
#rightPanel b{color:var(--cyan);font-variant-numeric:tabular-nums}
#rainLv{color:var(--amber)}
#hint{position:absolute;left:16px;bottom:14px;font-size:12px;color:#7e94a6;letter-spacing:.5px}
kbd{display:inline-block;min-width:20px;text-align:center;padding:1px 6px;font-size:11px;
border:1px solid #55708a;border-bottom-width:2px;border-radius:4px;background:#12202e;color:#cfe4f5}
#crosshair{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px;
border-radius:50%;background:rgba(220,240,255,.85);box-shadow:0 0 6px rgba(140,200,255,.8)}
#prompt{position:absolute;left:50%;bottom:88px;transform:translateX(-50%) translateY(12px);
padding:10px 22px;text-align:center;opacity:0;transition:opacity .2s,transform .2s;
border-color:rgba(255,120,90,.5)}
#prompt.show{opacity:1;transform:translateX(-50%) translateY(0)}
#prompt .t{font-size:15px;font-weight:700;letter-spacing:1px}
#prompt .t em{font-style:normal;color:var(--amber)}
#cleanTrack{margin-top:8px;height:7px;width:220px;background:rgba(255,255,255,.1);
border-radius:4px;overflow:hidden}
#cleanFill{height:100%;width:0%;background:linear-gradient(90deg,var(--amber),#ffe08a);border-radius:4px}
#toastBox{position:absolute;top:80px;left:50%;transform:translateX(-50%);
display:flex;flex-direction:column;gap:8px;align-items:center}
.toast{padding:9px 20px;background:var(--panel);border:1px solid var(--line);border-radius:8px;
font-size:14px;font-weight:500;animation:tin .3s ease;white-space:nowrap}
.toast.good{border-color:rgba(60,224,138,.5);color:var(--ok)}
.toast.bad{border-color:rgba(255,93,93,.55);color:#ff9d9d}
@keyframes ti.........完整代码请登录后点击上方下载按钮下载查看















网友评论0