(function () {
// Game variables
var canvas,
ctx,
gameWidth,
gameHeight,
player,
keys,
enemies,
bullets,
isGameOver,
score;
// Create the game elements
function createGameElements() {
player = {
x: gameWidth / 2,
y: gameHeight - 50,
width: 50,
height: 50,
color: "#00ff00",
speed: 5,
};
keys = {
ArrowLeft: false,
ArrowRight: false,
Space: false,
};
isGameOver = false;
score = 0;
enemies = [];
for (var i = 0; i < 10; i++) {
var enemy = {
x: Math.random() * gameWidth,
y: Math.random() * -gameHeight,
width: 50,
height: 50,
color: "#ff0000",
speed: Math.random() * 2 + 1,
};
enemies.push(enemy);
}
bullets = [];
}
// Initialize the game
function init() {
canvas = document.getElementById("game-canvas");
ctx = canvas.getContext("2d");
gameWidth = window.innerWidth;
gameHeight = window.innerHeight;
canvas.width = gameWidth;
canvas.height = gameHeight;
createGameElements();
// Event listeners
document.addEventListener("keydown", function (e) {
if (e.key in keys) {
keys[e.key] = true;
}
});
document.addEventListener("keyup", function (e) {
if (e.key in keys) {
keys[e.key] = false;
}
});
// Start the game loop
gameLoop();
}
// Update game objects
function update() {
if (keys.ArrowLeft && player.x > 0) {
player.x -= player.speed;
} else if (keys.ArrowRight && player.x + player.width < gameWidth) {
player.x += player.speed;
}
if (keys.Space) {
var bullet = {
x: player.x + player.width / 2,
y: player.y,
width: 10,
height: 10,
color: "#ffff00",
speed: 6,
};
bullets.push(bullet);
}
for (var i = 0; i < enemies.length; i++) {
var enemy = enemies[i];
enemy.y += enemy.speed;
if (
enemy.y + enemy.height > gameHeight ||
collision(player, enemy)
) {
isGameOver = true;
}
}
bullets = bullets.filter(function (bullet) {
bullet.y -= bullet.speed;
return bullet.y > 0;
});
bullets.forEach(function (bullet) {
enemies.forEach(functio
*This prompt didn't get me into the game this time. Plz try to generate it a few times.