User prompt
Добавь тоблицу лидеров
User prompt
Добавь буст в виде скорости
User prompt
Зделай так чтобы есле зомби дошлт до низа то игра закончится
User prompt
Добавить смерть персонажа
User prompt
Убрать физику
User prompt
Добавить фон
User prompt
Добивить физику
User prompt
Добавить счёт убийств
Initial prompt
Зомби
/****
* Classes
****/
// Define a class for bullets
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 15;
self.update = function () {
self.y -= self.speed;
};
});
// Assets will be automatically created and loaded by the LK engine based on their usage in the code.
// Define a class for the player character
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10;
self.update = function () {
self.y += self.speed;
};
});
// Define a class for zombies
var Zombie = Container.expand(function () {
var self = Container.call(this);
var zombieGraphics = self.attachAsset('zombie', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.update = function () {
self.y += self.speed;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
// Add background image
var background = LK.getAsset('backgroundImage', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2
});
game.addChild(background);
// Create and display the kill count text
var killCountText = new Text2('Kills: 0', {
size: 100,
fill: "#ffffff"
});
killCountText.anchor.set(0.5, 0);
LK.gui.top.addChild(killCountText);
// Initialize player with speed boost
var player = game.addChild(new Player());
player.x = 2048 / 2;
player.y = 2732 - 200;
var speedBoostActive = false;
var speedBoostDuration = 5000; // 5 seconds
var speedBoostCooldown = 10000; // 10 seconds
var lastSpeedBoostTime = 0;
// Function to activate speed boost
function activateSpeedBoost() {
if (!speedBoostActive && LK.ticks - lastSpeedBoostTime > speedBoostCooldown) {
speedBoostActive = true;
player.speed *= 2; // Double the player's speed
lastSpeedBoostTime = LK.ticks;
LK.setTimeout(function () {
player.speed /= 2; // Reset the player's speed
speedBoostActive = false;
}, speedBoostDuration);
}
}
// Initialize kill count
var killCount = 0;
// Initialize leaderboard
var leaderboard = new Text2('Leaderboard:\n1. Player1 - 100\n2. Player2 - 80\n3. Player3 - 60', {
size: 80,
fill: "#ffffff"
});
leaderboard.anchor.set(0.5, 0);
LK.gui.topRight.addChild(leaderboard);
// Initialize arrays for zombies and bullets
var zombies = [];
var bullets = [];
// Function to spawn a zombie
function spawnZombie() {
var zombie = new Zombie();
zombie.x = Math.random() * 2048;
zombie.y = -50;
zombies.push(zombie);
game.addChild(zombie);
}
// Function to handle shooting
function shootBullet() {
var bullet = new Bullet();
bullet.x = player.x;
bullet.y = player.y;
bullets.push(bullet);
game.addChild(bullet);
}
// Game update logic
game.update = function () {
// Update player
player.update();
// Update zombies
for (var i = zombies.length - 1; i >= 0; i--) {
zombies[i].update();
if (zombies[i].y > 2732) {
// Flash screen red for 1 second to indicate game over
LK.effects.flashScreen(0xff0000, 1000);
// Show game over screen
LK.showGameOver();
return; // Exit update loop
}
// Check for collision between player and zombies
if (player.intersects(zombies[i])) {
// Flash screen red for 1 second to indicate player death
LK.effects.flashScreen(0xff0000, 1000);
// Show game over screen
LK.showGameOver();
return; // Exit update loop
}
}
// Update bullets
for (var j = bullets.length - 1; j >= 0; j--) {
bullets[j].update();
if (bullets[j].y < 0) {
bullets[j].destroy();
bullets.splice(j, 1);
}
}
// Check for collisions between bullets and zombies
for (var k = bullets.length - 1; k >= 0; k--) {
for (var l = zombies.length - 1; l >= 0; l--) {
if (bullets[k].intersects(zombies[l])) {
bullets[k].destroy();
zombies[l].destroy();
bullets.splice(k, 1);
zombies.splice(l, 1);
killCount++;
killCountText.setText('Kills: ' + killCount);
break;
}
}
}
// Spawn zombies periodically
if (LK.ticks % 60 === 0) {
spawnZombie();
}
};
// Handle player movement
game.move = function (x, y, obj) {
player.x = x;
player.y = y;
};
// Handle shooting
game.down = function (x, y, obj) {
shootBullet();
activateSpeedBoost();
}; ===================================================================
--- original.js
+++ change.js
@@ -85,8 +85,15 @@
}
}
// Initialize kill count
var killCount = 0;
+// Initialize leaderboard
+var leaderboard = new Text2('Leaderboard:\n1. Player1 - 100\n2. Player2 - 80\n3. Player3 - 60', {
+ size: 80,
+ fill: "#ffffff"
+});
+leaderboard.anchor.set(0.5, 0);
+LK.gui.topRight.addChild(leaderboard);
// Initialize arrays for zombies and bullets
var zombies = [];
var bullets = [];
// Function to spawn a zombie
Город зомби апокалипсиса. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Пуля. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Игрок в стиле зомби апокалипсиса. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.