TankWar3D / index.html
cutechicken's picture
Update index.html
576e1ec verified
raw
history blame
7.03 kB
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Combat Helicopter Simulator</title>
<style>
body {
margin: 0;
overflow: hidden;
background: #000;
font-family: 'Courier New', monospace;
}
#loading {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: rgba(0,0,0,0.8);
padding: 20px;
border-radius: 10px;
z-index: 2000;
text-align: center;
}
.loading-spinner {
width: 50px;
height: 50px;
border: 5px solid #0f0;
border-top: 5px solid transparent;
border-radius: 50%;
animation: spin 1s linear infinite;
margin: 0 auto 20px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.loading-text {
color: #0f0;
font-size: 24px;
text-align: center;
}
#cockpit-frame {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 20px solid #2a2a2a;
box-sizing: border-box;
pointer-events: none;
z-index: 1000;
}
#cockpit-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
pointer-events: none;
z-index: 999;
}
#info {
position: absolute;
top: 10px;
left: 10px;
color: #0f0;
background: rgba(0,20,0,0.7);
padding: 10px;
font-size: 14px;
z-index: 1001;
border: 1px solid #0f0;
border-radius: 5px;
user-select: none;
}
#crosshair {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 40px;
height: 40px;
border: 2px solid rgba(0,255,0,0.7);
border-radius: 50%;
z-index: 1001;
pointer-events: none;
}
#crosshair::before,
#crosshair::after {
content: '';
position: absolute;
background: rgba(0,255,0,0.7);
}
#crosshair::before {
top: 50%;
left: -10px;
right: -10px;
height: 2px;
transform: translateY(-50%);
}
#crosshair::after {
left: 50%;
top: -10px;
bottom: -10px;
width: 2px;
transform: translateX(-50%);
}
#healthBar {
position: absolute;
bottom: 20px;
left: 20px;
width: 400px;
height: 30px;
background: rgba(0,20,0,0.7);
border: 2px solid #0f0;
z-index: 1001;
border-radius: 15px;
overflow: hidden;
}
#health {
width: 100%;
height: 100%;
background: linear-gradient(90deg, #0f0, #00ff00);
transition: width 0.3s;
}
#ammo {
position: absolute;
bottom: 20px;
right: 20px;
color: #0f0;
background: rgba(0,20,0,0.7);
padding: 10px;
font-size: 20px;
z-index: 1001;
border: 1px solid #0f0;
border-radius: 5px;
}
#altitude-indicator,
#speed-indicator,
#compass {
position: fixed;
color: #0f0;
background: rgba(0,20,0,0.7);
padding: 10px;
border: 1px solid #0f0;
border-radius: 5px;
z-index: 1001;
}
#altitude-indicator {
left: 20px;
top: 50%;
}
#speed-indicator {
right: 20px;
top: 50%;
}
#compass {
top: 20px;
left: 50%;
transform: translateX(-50%);
}
#radar {
position: fixed;
bottom: 20px;
right: 20px;
width: 200px;
height: 200px;
background: rgba(0,20,0,0.7);
border: 2px solid #0f0;
border-radius: 50%;
z-index: 1001;
overflow: hidden;
}
.radar-sweep {
position: absolute;
top: 50%;
left: 50%;
width: 50%;
height: 2px;
background: linear-gradient(90deg, #0f0, transparent);
transform-origin: left center;
animation: radar-sweep 4s infinite linear;
}
.radar-dot {
position: absolute;
width: 4px;
height: 4px;
background: #f00;
border-radius: 50%;
transform: translate(-50%, -50%);
}
@keyframes radar-sweep {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
#stage {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #0f0;
background: rgba(0,20,0,0.8);
padding: 20px;
font-size: 32px;
z-index: 1001;
border-radius: 10px;
display: none;
}
</style>
</head>
<body>
<div id="loading">
<div class="loading-spinner"></div>
<div class="loading-text">Loading game assets...</div>
</div>
<div id="cockpit-frame"></div>
<div id="cockpit-overlay"></div>
<div id="info">
Click to start<br>
WASD - Move Helicopter<br>
Mouse - Aim<br>
Left Click - Shoot<br>
R - Reload
</div>
<div id="crosshair"></div>
<div id="healthBar"><div id="health"></div></div>
<div id="ammo">Ammo: 30/30</div>
<div id="stage">Stage 1</div>
<div id="altitude-indicator">ALT: <span>50</span>m</div>
<div id="speed-indicator">SPD: <span>0</span>km/h</div>
<div id="compass">HDG: <span>0</span>°</div>
<div id="radar">
<div class="radar-sweep"></div>
<div class="radar-targets"></div>
</div>
<script type="importmap">
{
"imports": {
"three": "https://unpkg.com/three@0.157.0/build/three.module.js",
"three/addons/": "https://unpkg.com/three@0.157.0/examples/jsm/"
}
}
</script>
<script type="module" src="game.js"></script>
</body>
</html>