three实现三维cs反恐精英经典游戏代码
代码语言:html
所属分类:其他
代码由glm-5.3-flash ai生成,可能有错误,仅供参考:点击查看提示词
代码描述:three实现三维cs反恐精英经典游戏代码
代码标签: three 三维 cs 反恐 精英 经典 游戏 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>反恐行动 · TACTICAL STRIKE</title>
<script type="importmap">
{
"imports": {
"three": "https://cdn.jsdelivr.net/npm/three@0.160.0/build/three.module.js",
"three/addons/": "https://cdn.jsdelivr.net/npm/three@0.160.0/examples/jsm/"
}
}
</script>
<style>
:root{
--sand:#d9b36c; --sand-d:#a8873f; --olive:#3e4a2e; --olive-d:#2a3320;
--panel:rgba(16,20,12,.86); --panel2:rgba(24,30,18,.92); --line:rgba(217,179,108,.28);
--ct:#4aa3ff; --t:#ff9a3c; --red:#ff4d5a; --green:#3ddc7f; --gold:#ffd166;
--txt:#e8e2d0; --txt-dim:#a89f88;
--font:'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',system-ui,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{width:100%;height:100%;overflow:hidden;background:#0b0d08;font-family:var(--font);color:var(--txt);
-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none}
#gl{position:fixed;inset:0;display:block;width:100%;height:100%}
.hidden{display:none!important}
.overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(8,10,6,.66);backdrop-filter:blur(3px)}
.panel{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:22px 26px;box-shadow:0 18px 60px rgba(0,0,0,.55);max-width:min(92vw,760px);max-height:88vh;overflow:auto}
h1,h2,h3{font-weight:800;letter-spacing:.04em}
button{font-family:var(--font);cursor:pointer;border:1px solid var(--line);background:linear-gradient(180deg,#3a442e,#2a3320);color:var(--txt);
border-radius:9px;padding:9px 18px;font-size:14px;font-weight:700;letter-spacing:.06em;transition:filter .15s,transform .1s}
button:hover{filter:brightness(1.22)}
button:active{transform:translateY(1px)}
button.primary{background:linear-gradient(180deg,#c99a3f,#9a7020);border-color:#e8c67a;color:#1c1608;font-size:17px;padding:12px 42px}
button.danger{background:linear-gradient(180deg,#8a3a3a,#5e2424)}
button.seg{padding:7px 14px;border-radius:8px;background:rgba(255,255,255,.05);font-size:13px}
button.seg.on{background:linear-gradient(180deg,#c99a3f,#9a7020);color:#1c1608;border-color:#e8c67a}
button:disabled{opacity:.42;cursor:not-allowed;filter:none}
input[type=range]{-webkit-appearance:none;appearance:none;height:5px;border-radius:3px;background:#3a442e;outline:none;width:170px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:15px;height:15px;border-radius:50%;background:var(--sand);border:2px solid #6e5526;cursor:pointer}
input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--sand);border:2px solid #6e5526;cursor:pointer}
select{font-family:var(--font);background:#2a3320;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13px}
.scroll::-webkit-scrollbar{width:8px;height:8px}
.scroll::-webkit-scrollbar-track{background:rgba(0,0,0,.35);border-radius:4px}
.scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--sand-d),#6e5526);border-radius:4px}
.scroll{scrollbar-width:thin;scrollbar-color:var(--sand-d) rgba(0,0,0,.35)}
.dim{color:var(--txt-dim)}
.small{font-size:12px}
/* ---------- start screen ---------- */
#start .panel{max-width:640px;text-align:center}
#start h1{font-size:clamp(26px,5.4vw,44px);background:linear-gradient(180deg,#ffe2a0,#d9b36c 60%,#a8873f);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 2px 24px rgba(217,179,108,.18);line-height:1.15}
#start h1 span{font-size:.42em;letter-spacing:.5em;color:var(--txt-dim);-webkit-text-fill-color:var(--txt-dim);display:block;margin-top:2px}
#start .sub{margin:6px 0 16px;font-size:13px;color:var(--txt-dim)}
.diff-row{display:flex;gap:10px;justify-content:center;margin:10px 0 4px}
.ctrl-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 22px;text-align:left;font-size:12.5px;margin:14px auto 4px;max-width:520px;color:#cfc7b0}
.ctrl-grid b{color:var(--gold);font-weight:700;margin-right:7px;font-family:Consolas,monospace}
#start-best{font-size:12.5px;color:var(--green);margin-top:12px;min-height:16px}
#start-tip{font-size:11.5px;color:var(--txt-dim);margin-top:10px}
/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;z-index:20;pointer-events:none;font-variant-numeric:tabular-nums}
#vignette{position:fixed;inset:0;background:radial-gradient(ellipse at center,transparent 58%,rgba(0,0,0,.42) 100%);z-index:1}
#dmg-vignette{position:fixed;inset:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(255,30,40,.55) 100%);opacity:0;transition:opacity .12s;z-index:2}
#dmg-dir{position:fixed;left:50%;top:50%;width:0;height:0;z-index:3;opacity:0}
#dmg-dir i{position:absolute;left:-34px;top:-118px;width:68px;height:16px;display:block;
background:linear-gradient(180deg,rgba(255,60,70,.95),rgba(255,60,70,.1));clip-path:polygon(12% 100%,50% 0,88% 100%);filter:drop-shadow(0 0 6px rgba(255,40,50,.8))}
#lowhp{position:fixed;inset:0;box-shadow:inset 0 0 120px rgba(255,30,40,.5);opacity:0;z-index:2}
#topbar{position:fixed;top:10px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:5px;z-index:5}
#timer-box{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 16px}
.score-ct{color:var(--ct);font-size:22px;font-weight:800;min-width:34px;text-align:center}
.score-t{color:var(--t);font-size:22px;font-weight:800;min-width:34px;text-align:center}
#timer{font-size:22px;font-weight:800;letter-spacing:.06em;min-width:74px;text-align:center}
#timer.warn{color:var(--red);animation:pulse 1s infinite}
#timer.bomb{color:var(--red);animation:pulse .5s infinite}
@keyframes pulse{50%{opacity:.45}}
#round-label{font-size:11px;color:var(--txt-dim);letter-spacing:.14em}
#alive-row{display:flex;gap:10px;font-size:12px;align-items:center}
#alive-row .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:middle}
#alive-ct,#alive-t{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:2px 9px}
#radar-wrap{position:fixed;top:12px;left:12px;z-index:5}
#radar{width:172px;height:172px;border-radius:10px;border:1px solid var(--line);background:rgba(10,13,8,.72);box-shadow:0 4px 18px rgba(0,0,0,.4)}
#radar-label{font-size:10.5px;color:var(--txt-dim);text-align:center;margin-top:3px;letter-spacing:.2em}
#killfeed{position:fixed;top:12px;right:12px;z-index:5;display:flex;flex-direction:column;gap:4px;align-items:flex-end;max-width:46vw}
.kf{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:4px 10px;font-size:12.5px;animation:kfin .18s ease-out;white-space:nowrap}
.kf.out{opacity:0;transition:opacity .5s}
.kf .ct{color:var(--ct);font-weight:700}.kf .t{color:var(--t);font-weight:700}
.kf .wpn{color:var(--txt-dim);margin:0 7px;font-size:11px}
.kf .hs{color:var(--red);font-weight:800;margin:0 4px;font-size:11px}
@keyframes kfin{from{transform:translateX(20px);opacity:0}}
#bl-box{position:fixed;left:14px;bottom:14px;z-index:5;display:flex;flex-direction:column;gap:7px}
.bar-row{display:flex;align-items:center;gap:9px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:6px 12px;min-width:198px}
.bar-ico{width:15px;height:15px;flex:none;border-radius:3px}
.ico-hp{background:linear-gradient(180deg,#7ee6a0,#2f9e5f)}
.ico-ar{background:linear-gradient(180deg,#8fc6ff,#2f6fb0)}
.bar-track{flex:1;height:9px;background:rgba(0,0,0,.5);border-radius:5px;overflow:hidden}
.bar-fill{height:100%;border-radius:5px;transition:width .18s;background:linear-gradient(90deg,#37b56a,#7ee6a0)}
#ar-fill{background:linear-gradient(90deg,#2f6fb0,#8fc6ff)}
.bar-val{width:34px;text-align:right;font-size:16px;font-weight:800}
#money-box{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:5px 12px;font-size:17px;font-weight:800;color:var(--green);width:198px;display:flex;justify-content:space-between;align-items:center}
#money-pop{font-size:12px;color:var(--gold);font-weight:700;opacity:0;transition:opacity .3s}
#kit-tag{font-size:10.5px;color:var(--ct);border:1px solid rgba(74,163,255,.5);padding:1px 6px;border-radius:5px}
#hp-val.low{color:var(--red);animation:pulse .8s infinite}
#br-box{position:fixed;right:14px;bottom:14px;z-index:5;display:flex;flex-direction:column;align-items:flex-end;gap:7px}
#slots{display:flex;gap:6px}
.slot{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:3px 10px;font-size:11px;color:var(--txt-dim)}
.slot.on{border-color:var(--sand);color:var(--gold);background:rgba(217,179,108,.14)}
#ammo-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:7px 16px;display:flex;align-items:baseline;gap:9px}
#ammo-mag{font-size:30px;font-weight:800;line-height:1}
#ammo-mag.low{color:var(--red);animation:pulse .6s infinite}
#ammo-res{font-size:14px;color:var(--txt-dim)}
#wpn-name{font-size:12.5px;color:var(--sand);letter-spacing:.1em;font-weight:700}
#reload-tip{font-size:11px;color:var(--gold);min-height:13px}
#crosshair{position:fixed;left:50%;top:50%;z-index:6;--gap:7px;--cl:9px;--th:2px}
#crosshair i{position:absolute;background:rgba(140,255,170,.92);box-shadow:0 0 3px rgba(0,0,0,.9)}
#ch-t{width:var(--th);height:var(--cl);left:calc(var(--th)/-2);top:calc(var(--gap)*-1 - var(--cl))}
#ch-b{width:var(--th);height:var(--cl);left:calc(var(--th)/-2);top:var(--gap)}
#ch-l{width:var(--cl);height:var(--th);top:calc(var(--th)/-2);left:calc(var(--gap)*-1 - var(--cl))}
#ch-r{width:var(--cl);height:var(--th);top:calc(var(--th)/-2);left:var(--gap)}
#ch-dot{width:2px;height:2px;left:-1px;top:-1px;border-radius:50%}
#hitmarker{position:fixed;left:50%;top:50%;z-index:6;opacity:0}
#hitmarker i{position:absolute;width:2px;height:9px;background:#fff;box-shadow:0 0 4px rgba(0,0,0,.8)}
#hitmarker.hs i{background:var(--red)}
#hitmarker i:nth-child(1){transform:translate(-7px,-13px) rotate(45deg)}
#hitmarker i:nth-child(2){transform:translate(5px,-13px) rotate(-45deg)}
#hitmarker i:nth-child(3){transform:translate(-7px,3px) rotate(-45deg)}
#hitmarker i:nth-child(4){transform:translate(5px,3px) rotate(45deg)}
#hitmarker.show{opacity:1;transition:none}
#hitmarker.fade{opacity:0;transition:opacity .3s}
#banner{position:fixed;top:26%;left:50%;transform:translateX(-50%);z-index:7;text-align:center;opacity:0;transition:opacity .3s;pointer-events:none}
#banner.show{opacity:1}
#banner-title{font-size:clamp(24px,4.6vw,42px);font-weight:900;letter-spacing:.14em;text-shadow:0 3px 18px rgba(0,0,0,.7)}
#banner-title.ct{color:var(--ct)}#banner-title.t{color:var(--t)}
#banner-sub{font-size:14px;color:var(--txt-dim);margin-top:6px;letter-spacing:.1em}
#announce{position:fixed;top:15%;left:50%;transform:translateX(-50%);z-index:7;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}
.an{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 18px;font-size:14px;font-weight:700;letter-spacing:.08em;animation:kfin .2s;white-space:nowrap}
.an.warn{border-color:rgba(255,77,90,.6);color:#ffb0b5}
.an.good{border-color:rgba(61,220,127,.5);color:#b9f3d0}
#killmsg{position:fixed;left:50%;bottom:31%;transform:translateX(-50%);z-index:7;text-align:center;opacity:0;transition:opacity .25s}
#killmsg.show{opacity:1}
#killmsg-text{font-size:15px;font-weight:800;color:#ffdca0;text-shadow:0 2px 8px rgba(0,0,0,.8);letter-spacing:.06em}
#killmsg-money{font-size:12.5px;color:var(--gold);font-weight:700}
#interact{position:fixed;left:50%;bottom:42%;transform:translateX(-50%);z-index:7;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 16px;font-size:13px;display:none;white-space:nowrap}
#interact b{color:var(--gold)}
#progress{position:fixed;left:50%;bottom:36%;transform:translateX(-50%);z-index:7;width:280px;display:none}
#progress-label{text-align:center;font-size:12.5px;color:var(--gold);margin-bottom:5px;font-weight:700;letter-spacing:.1em}
#progress-track{height:10px;background:rgba(0,0,0,.55);border:1px solid var(--line);border-radius:6px;overflow:hidden}
#progress-fill{height:100%;width:0;background:linear-gradient(90deg,#9a7020,var(--gold));border-radius:6px}
#spectate{position:fixed;left:50%;bottom:23%;transform:translateX(-50%);z-index:7;text-align:center;display:none}
#spectate-name{font-size:16px;font-weight:800;color:var(--ct)}
#spectate-tip{font-size:11.5px;color:var(--txt-dim);margin-top:3px}
#hint-click{position:fixed;left:50%;bottom:12%;transform:translateX(-50%);z-index:8;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 22px;font-size:13.5px;display:none;animation:pulse 1.6s infinite}
#mute-btn{position:fixed;top:12px;right:12px;z-index:70;pointer-events:auto;padding:5px 12px;font-size:12px;border-radius:7px}
#mute-btn.on{border-color:var(--green);color:var(--green)}
/* ---------- buy menu ---------- */
#buy .panel{width:min(94vw,700px)}
#buy-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
#buy-money{color:var(--green);font-size:20px;font-weight:800}
#buy-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:10px;max-height:56vh;overflow:auto;padding:2px}
.bcard{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:12px 14px;text-align:left;cursor:pointer;position:relative}
.bcard:hover{border-color:var(--sand);background:rgba(217,179,108,.09)}
.bcard.owned{opacity:.55}
.bcard.poor{opacity:.45}
.bcard .bname{font-size:16px;font-weight:800;color:var(--gold)}
.bcard .bcat{font-size:10.5px;color:var(--txt-dim);letter-spacing:.14em;margin-bottom:4px}
.bcard .bdesc{font-size:11.5px;color:#cfc7b0;margin:5px 0 7px}
.bcard .bprice{font-size:15px;font-weight:800;color:var(--green)}
.bcard .bkey{position:absolute;top:9px;right:11px;font-size:11px;color:var(--txt-dim);border:1px solid var(--line);border-radius:5px;padding:1px 6px}
.bcard .bstat{display:flex;gap:4px;margin-top:6px}
.bcard .bstat i{display:block;height:5px;border-radius:3px;background:linear-gradient(90deg,#6e5526,var(--sand));width:0}
.bcard .owned-tag{position:absolute;bottom:10px;right:12px;font-size:11px;color:var(--ct);font-weight:700}
/* ---------- scoreboard ---------- */
#scoreboard .panel{width:min(94vw,620px)}
#sb-head{text-align:center;margin-bottom:12px}
#sb-head h2{font-size:20px;letter-spacing:.2em}
#sb-score{font-size:15px;margin-top:4px}
#sb-score b.ct{color:var(--ct)}#sb-score b.t{color:var(--t)}
table.sbt{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:14px}
table.sbt th{font-size:11px;color:var(--txt-dim);letter-spacing:.14em;text-align:left;padding:4px 10px;border-bottom:1px solid var(--line)}
table.sbt td{padding:5px 10px;border-bottom:1px solid rgba(255,255,255,.05)}
table.sbt tr.me td{background:rgba(217,179,108,.1)}
table.sbt tr.dead td{opacity:.45}
.team-tag{font-size:12px;font-weight:800;letter-spacing:.18em;margin-bottom:5px}
.team-tag.ct{color:var(--ct)}.team-tag.t{color:var(--t)}
td.money{color:var(--green)}
/* ---------- pause / settings ---------- */
#pause .panel{width:min(92vw,430px);text-align:center}
#pause h2{font-size:24px;letter-spacing:.3em;margin-bottom:16px}
#pause .btn-col{display:flex;flex-direction:column;gap:9px;margin-bottom:18px}
#pause .btn-col button{width:100%;font-size:15px}
.set-grid{display:grid;grid-template-columns:auto 1fr;gap:9px 14px;align-items:center;text-align:left;font-size:13px;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:10px;padding:13px 15px}
.set-grid label{color:var(--txt-dim)}
.set-grid .val{color:var(--gold);min-width:44px;display:inline-block}
.set-btns{display:flex;gap.........完整代码请登录后点击上方下载按钮下载查看















网友评论0