Hit with a Drone Game
About this app
A fun and challenging game where you control a drone to drop ammunition on the Russian military.
Hit with a Drone Game 0
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Hit with a Drone Game</title>
<meta name="description" content="A fun and challenging game where you control a drone to drop ammunition on the Russian military.">
<meta name="keywords" content="game, drone, military, Russia, Ukraine, ammunition">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script type="text/javascript">
try {
let droneSpeed = 1;
let militarySpeed = 0.5;
let score = 0;
function updateScore() {
document.querySelector('#score').textContent = score;
}
function createMilitary() {
const military = document.createElement('div');
military.className = 'military';
military.style.left = Math.random() * 100 + '%';
military.style.animationDuration = (Math.random() * 10 + 5) / militarySpeed + 's';
document.querySelector('#game').appendChild(military);
military.addEventListener('animationend', () => {
military.remove();
if (military.hit) {
score++;
updateScore();
} else {
alert('Game Over! You scored ' + score);
resetGame();
}
});
}
function resetGame() {
score = 0;
updateScore();
militarySpeed = 0.5;
document.querySelector('#game').innerHTML = '';
startGame();
}
function startGame() {
createDrone();
setInterval(createMilitary, 1000);
}
function createDrone() {
const drone = document.createElement('div');
drone.className = 'drone';
drone.style.animationDuration = '10s';
drone.style.animationTimingFunction = 'linear';
document.querySelector('#game').appendChild(drone);
drone.addEventListener('click', () => {
if (drone.style.animationName !== 'explode') {
drone.style.animationName = 'explode';
setTimeout(() => {
drone.remove();
createDrone();
}, 1000);
Array.from(document.querySelectorAll('.military')).forEach(military => {
if (Math.abs(military.getBoundingClientRect().x - drone.getBoundingClientRect().x) < 50) {
military.hit = true;
military.style.animationName = 'hit';
}
});
}
});
}
document.addEventListener("DOMContentLoaded", function() {
startGame();
});
} catch (error) {
throw error;
}
</script>
<style>
body, html {
height: 100%;
margin: 0;
background: linear-gradient(0deg, #222, #000);
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
font-family: 'Courier New', monospace;
color: white;
}
#game {
position: relative;
width: 800px;
height: 600px;
border: 1px solid white;
}
.military {
position: absolute;
bottom: 0;
width: 20px;
height: 20px;
background: red;
animation: moveFromRightToLeft 10s linear infinite;
}
.drone {
position: absolute;
top: 0;
left: 50%;
width: 30px;
height: 30px;
background: blue;
animation: moveUpDown 1s infinite;
}
@keyframes moveFromRightToLeft {
0% { left: 100%; }
100% { left: 0; }
}
@keyframes moveUpDown {
0%, 100% { top: 10px; }
50% { top: 0; }
}
@keyframes explode {
0% { background: blue; }
50% { background: orange; }
100% { background: red; }
}
@keyframes hit {
0% { background: red; }
50% { background: orange; }
100% { background: yellow; }
}
</style>
</head>
<body>
<div id="main-container" class="container">
<div id="game">
<div id="score">0</div>
</div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!