three实现三维塔防守城门游戏代码
代码语言:html
所属分类:游戏
代码描述: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>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { overflow: hidden; background: #000; font-family: 'Microsoft YaHei', sans-serif; }
canvas { display: block; }
#ui-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
#top-bar {
position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 30px;
background: rgba(0,0,0,0.7);
border: 2px solid #c8a832;
border-radius: 10px;
padding: 10px 30px;
color: #fff;
font-size: 16px;
pointer-events: auto;
}
.stat-item {
display: flex;
align-items: center;
gap: 8px;
}
.stat-icon {
font-size: 22px;
}
.stat-value {
font-weight: bold;
color: #ffd700;
font-size: 18px;
}
#tower-panel {
position: absolute;
bottom: 15px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 10px;
pointer-events: auto;
}
.tower-btn {
width: 90px;
padding: 8px 5px;
background: rgba(0,0,0,0.8);
border: 2px solid #555;
border-radius: 10px;
color: #fff;
cursor: pointer;
text-align: center;
transition: all 0.3s;
font-size: 12px;
}
.tower-btn:hover {
border-color: #ffd700;
background: rgba(50,50,0,0.8);
transform: translateY(-5px);
}
.tower-btn.selected {
border-color: #ffd700;
background: rgba(80,60,0,0.8);
box-shadow: 0 0 15px rgba(255,215,0,0.5);
}
.tower-btn .icon {
font-size: 28px;
display: block;
margin-bottom: 3px;
}
.tower-btn .name {
font-weight: bold;
margin-bottom: 2px;
font-size: 13px;
}
.tower-btn .cost {
color: #ffd700;
font-size: 12px;
}
.tower-btn .info {
color: #aaa;
font-size: 10px;
line-height: 1.3;
}
#wave-info {
position: absolute;
top: 60px;
left: 50%;
transform: translateX(-50%);
color: #ff4444;
font-size: 28px;
font-weight: bold;
text-shadow: 0 0 10px rgba(255,0,0,0.5);
opacity: 0;
transition: opacity 0.5s;
pointer-events: none;
}
#controls-panel {
position: absolute;
top: 10px;
right: 10px;
display: flex;
flex-direction: column;
gap: 5px;
pointer-events: auto;
}
.ctrl-btn {
padding: 8px 15px;
background: rgba(0,0,0,0.7);
border: 1px solid #666;
border-radius: 5px;
color: #fff;
cursor: pointer;
font-size: 13px;
transition: all 0.3s;
}
.ctrl-btn:hover {
border-color: #ffd700;
background: rgba(50,50,0,0.8);
}
#gate-hp-bar {
position: absolute;
top: 55px;
left: 50%;
transform: translateX(-50%);
width: 300px;
pointer-events: none;
}
#gate-hp-bar .label {
color: #fff;
font-size: 12px;
text-align: center;
margin-bottom: 3px;
}
#gate-hp-bar .bar-bg {
width: 100%;
height: 14px;
background: rgba(0,0,0,0.7);
border: 1px solid #888;
border-radius: 7px;
overflow: hidden;
}
#gate-hp-bar .bar-fill {
height: 100%;
width: 100%;
background: linear-gradient(to right, #ff0000, #00ff00);
border-radius: 7px;
transition: width 0.3s;
}
#message-area {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
pointer-events: none;
text-align: center;
}
#game-message {
font-size: 48px;
font-weight: bold;
color: #ffd700;
text-shadow: 0 0 20px rgba(255,215,0,0.8), 0 0 40px rgba(255,215,0,0.4);
opacity: 0;
transition: opacity 0.5s;
}
#start-screen {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
background: rgba(0,0,0,0.85);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
pointer-events: auto;
z-index: 100;
}
#start-screen h1 {
font-size: 52px;
color: #ffd700;
text-shadow: 0 0 20px rgba(255,215,0,0.6);
margin-bottom: 15px;
}
#start-screen p {
color: #ccc;
font-size: 16px;
margin-bottom: 5px;
line-height: 1.8;
}
#start-btn {
margin-top: 25px;
padding: 15px 60px;
font-size: 24px;
background: linear-gradient(135deg, #c8a832, #8B6914);
border: 2px solid #ffd700;
border-radius: 10px;
color: #fff;
cursor: pointer;
transition: all 0.3s;
font-weight: bold;
}
#start-btn:hover {
transform: scale(1.1);
box-shadow: 0 0 30px rgba(255,215,0,0.5);
}
#tooltip {
position: absolute;
background: rgba(0,0,0,0.9);
border: 1px solid #ffd700;
border-radius: 8px;
padding: 10px;
color: #fff;
font-size: 12px;
pointer-events: none;
display: none;
min-width: 150px;
}
#tooltip .tt-name {
font-weight: bold;
color: #ffd700;
font-size: 14px;
margin-bottom: 5px;
}
#tooltip .tt-hp {
margin-bottom: 3px;
}
.hp-mini-bar {
width: 100%;
height: 6px;
background: #333;
border-radius: 3px;
overflow: hidden;
margin-top: 2px;
}
.hp-mini-fill {
height: 100%;
background: #0f0;
border-radius: 3px;
}
#kill-count {
position: absolute;
bottom: 100px;
right: 15px;
color: #ff6644;
font-size: 16px;
background: rgba(0,0,0,0.6);
padding: 8px 15px;
border-radius: 8px;
border: 1px solid #ff6644;
pointer-events: none;
}
#minimap {
position: absolute;
bottom: 15px;
right: 15px;
width: 150px;
height: 150px;
background: rgba(0,0,0,0.7);
border: 2px solid #666;
border-radius: 5px;
pointer-events: none;
}
#speed-display {
position: absolute;
top: 10px;
left: 10px;
color: #fff;
font-size: 14px;
background: rgba(0,0,0,0.6);
padding: 5px 10px;
border-radius: 5px;
pointer-events: none;
}
#upgrade-panel {
position: absolute;
bottom: 110px;
left: 50%;
transform: translateX(-50%);
background: rgba(0,0,0,0.9);
border: 2px solid #ffd700;
border-radius: 10px;
padding: 15px;
color: #fff;
display: none;
pointer-events: auto;
min-width: 220px;
text-align: center;
}
#upgrade-panel .up-title {
font-size: 16px;
font-weight: bold;
color: #ffd700;
margin-bottom: 8px;
}
#upgrade-panel .up-info {
font-size: 13px;
margin-bottom: 5px;
}
#upgrade-panel .up-buttons {
display: flex;
gap: 8px;
justify-content: center;
margin-top: 8px;
}
.up-btn {
padding: 6px 15px;
border: 1px solid #888;
background: rgba(50,50,50,0.8);
color: #fff;
border-radius: 5px;
cursor: pointer;
font-size: 12px;
transition: all 0.2s;
}
.up-btn:hover {
border-color: #ffd700;
background: rgba(80,60,0,0.8);
}
.up-btn.sell { border-color: #f44; }
.up-btn.sell:hover { background: rgba(100,0,0,0.8); }
</style>
</head>
<body>
<div id="start-screen">
<h1>⚔️ 三维城门塔防 ⚔️</h1>
<p>🏰 守护你的城门,抵御千军万马!</p>
<p>🏗️ 在城门外建造防御塔,消灭来犯之敌</p>
<p>🎯 箭塔 | 炮塔 | 冰塔 | 火塔 | 雷塔 | 毒塔 - 六种塔可选</p>
<p>🖱️ 点击地面建塔 | 右键拖动旋转 | 滚轮缩放 | 点击塔升级/出售</p>
<p>⌨️ 数字键1-6选塔 | 空格暂停 | V切换视角</p>
<button id="start-btn" onclick="startGame()">开 始 守 城</button>
</div>
<div id="ui-overlay">
<div id="top-bar">
<div class="stat-item">
<span class="stat-icon">💰</span>
<span>银子: </span>
<span class="stat-value" id="gold-display">500</span>
</div>
<div class="stat-item">
<span class="stat-icon">🌊</span>
<span>波次: </span>
<span class="stat-value" id="wave-display">0 / 20</span>
.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0