User prompt
в каждой новой волне врагов, количества врагов увеличивается на 1
User prompt
новая волна не появляется пока не убиты враги прошлой волны
User prompt
волны появления зомби по 10, каждая последующая волна + 1 враг
User prompt
зомби появляются с меньшей интенсивностью
User prompt
увеличь скорость стрельбы
User prompt
добавь задний фон, болото
User prompt
при управлении игрок стоит на месте, а карта прокручивается под ним
User prompt
зомби появляются не волнами а бесконечно
User prompt
скорость стрельбы увеличивается с каждой новой волной, скорость стрельбы не увеливается от убийства врагов
User prompt
сделай волны зомби, каждый этап новый этап зомби на 20% больше и они на 1% быстрее двигаются в каждой волне
User prompt
враги стремятся к герою
User prompt
уменьши количество выпускаемых пуль, и увеличь скорость полета пуль
User prompt
с каждым убитым врагом увеличивается скорочть стрельбы и скорость респавна врагов
User prompt
выведи счетчик убитых врагов на экран
User prompt
добавь в интерфевейс количество жизней
User prompt
у игрока три жизни, если враг коснется игрока, то одна жизнь исчезает, если жизни заканчиватюся - игрок игрок умирает
User prompt
стреляют автоматически в направлении ближайшего к игроку врага
User prompt
пули убивают врагов
User prompt
игрок постоянно следует за мышкой
User prompt
игрок двигается мышью
Initial prompt
battle of the hordes
===================================================================
--- original.js
+++ change.js
@@ -1,44 +1,46 @@
-/****
+/****
* Classes
****/
// Hero class
var Hero = Container.expand(function () {
- var self = Container.call(this);
- var heroGraphics = self.createAsset('hero', 'Hero character', 0.5, 0.5);
- self.x = 2048 / 2;
- self.y = 2732 / 2;
+ var self = Container.call(this);
+ var heroGraphics = self.createAsset('hero', 'Hero character', 0.5, 0.5);
+ self.x = 2048 / 2;
+ self.y = 2732 / 2;
});
// Enemy class
var Enemy = Container.expand(function () {
- var self = Container.call(this);
- var enemyGraphics = self.createAsset('enemy', 'Enemy character', 0.5, 0.5);
- self.speed = 2;
- self.move = function () {
- // Simple movement towards the center of the screen
- var dx = 1024 - self.x;
- var dy = 1366 - self.y;
- var angle = Math.atan2(dy, dx);
- self.x += Math.cos(angle) * self.speed;
- self.y += Math.sin(angle) * self.speed;
- };
+ var self = Container.call(this);
+ var enemyGraphics = self.createAsset('enemy', 'Enemy character', 0.5, 0.5);
+ self.speed = 2;
+ self.move = function () {
+ // Simple movement towards the center of the screen
+ var dx = 1024 - self.x;
+ var dy = 1366 - self.y;
+ var angle = Math.atan2(dy, dx);
+ self.x += Math.cos(angle) * self.speed;
+ self.y += Math.sin(angle) * self.speed;
+ };
});
// Bullet class
var Bullet = Container.expand(function () {
- var self = Container.call(this);
- var bulletGraphics = self.createAsset('bullet', 'Bullet Graphics', 0.5, 0.5);
- self.speed = 5;
- self.move = function () {
- self.y -= self.speed;
- };
+ var self = Container.call(this);
+ var bulletGraphics = self.createAsset('bullet', 'Bullet Graphics', 0.5, 0.5);
+ self.speed = 5;
+ self.move = function () {
+ self.y -= self.speed;
+ };
});
-/****
+
+/****
* Initialize Game
****/
var game = new LK.Game({
- backgroundColor: 0x000000 // Init game with black background
+ backgroundColor: 0x000000 // Init game with black background
});
-/****
+
+/****
* Game Code
****/
// Initialize hero
var hero = game.addChild(new Hero());
@@ -48,58 +50,60 @@
var bullets = [];
// Function to spawn enemies
function spawnEnemy() {
- var angle = Math.random() * Math.PI * 2; // Random angle
- var radius = 1200; // Spawn circle radius
- var enemy = new Enemy();
- enemy.x = 1024 + radius * Math.cos(angle);
- enemy.y = 1366 + radius * Math.sin(angle);
- enemies.push(enemy);
- game.addChild(enemy);
+ var angle = Math.random() * Math.PI * 2; // Random angle
+ var radius = 1200; // Spawn circle radius
+ var enemy = new Enemy();
+ enemy.x = 1024 + radius * Math.cos(angle);
+ enemy.y = 1366 + radius * Math.sin(angle);
+ enemies.push(enemy);
+ game.addChild(enemy);
}
// Function to fire a bullet
function fireBullet() {
- var bullet = new Bullet();
- bullet.x = hero.x;
- bullet.y = hero.y;
- bullets.push(bullet);
- game.addChild(bullet);
+ var bullet = new Bullet();
+ bullet.x = hero.x;
+ bullet.y = hero.y;
+ bullets.push(bullet);
+ game.addChild(bullet);
}
// Game tick event
LK.on('tick', function () {
- // Move bullets
- for (var i = bullets.length - 1; i >= 0; i--) {
- bullets[i].move();
- if (bullets[i].y < 0) {
- bullets[i].destroy();
- bullets.splice(i, 1);
- }
- }
+ // Move bullets
+ for (var i = bullets.length - 1; i >= 0; i--) {
+ bullets[i].move();
+ if (bullets[i].y < 0) {
+ bullets[i].destroy();
+ bullets.splice(i, 1);
+ }
+ }
- // Move enemies
- for (var j = enemies.length - 1; j >= 0; j--) {
- enemies[j].move();
- if (enemies[j].intersects(hero)) {
- LK.effects.flashScreen(0xff0000, 1000);
- LK.showGameOver();
- return;
- }
- }
+ // Move enemies
+ for (var j = enemies.length - 1; j >= 0; j--) {
+ enemies[j].move();
+ if (enemies[j].intersects(hero)) {
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ }
- // Spawn enemies
- if (LK.ticks % 120 === 0) {
- spawnEnemy();
- }
+ // Spawn enemies
+ if (LK.ticks % 120 === 0) {
+ spawnEnemy();
+ }
- // Fire bullets
- if (LK.ticks % 30 === 0) {
- fireBullet();
- }
+ // Fire bullets
+ if (LK.ticks % 30 === 0) {
+ fireBullet();
+ }
});
-
-// Touch event to fire bullets
+// Touch event to move the hero
game.on('down', function (obj) {
- fireBullet();
+ var event = obj.event;
+ var pos = event.getLocalPosition(game);
+ hero.x = pos.x;
+ hero.y = pos.y;
});
\ No newline at end of file
hero with a gun, shoots forward, top view, topdown. Single Game Texture. In-Game asset. 2d.TopDown. Blank background. High contrast. No shadows.
metal ball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A fireball. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
heart. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
zombie kamikaze, vertical top view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
opponent for the game, zombie kamikaze, vertical top view. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.