User prompt
эта кнопка будет работать так, чтобы враги улетали из экрана и исчезали, но при этом 1 нажатие кнопки будет стоить 100 очков, и при каждом нажатии цена будет увеличиваться на 50
User prompt
эта кнопка будет работать так чтобы враги улетели как мухи терез границы экрана и исчезли, но при этом 1 клик кнопки будет стоить 100 очков, и при каждом нажатии цена на клик будет прибавляться на 50
User prompt
перемести кнопку-1 немного верх
User prompt
добавить кнопку-1 на права снизу
User prompt
пусть новые враги появляется так, сначала они маленькие а потом они растут до нормального размера
User prompt
сделай так чтобы новые враги появлялись как будто залетели в экран
User prompt
сделай так чтобы враги появлялся сквозь экрана но потом летели на экране
User prompt
сделай так чтобы новые враги появлялись из сквозь экрана
User prompt
Please fix the bug: 'TypeError: LK.effects.scaleTo is not a function' in or related to this line: 'LK.effects.scaleTo(enemy, {' Line Number: 111
User prompt
Добавляйте эффект масштабирования к врагам при их появлении
User prompt
Please fix the bug: 'TypeError: LK.effects.scaleTo is not a function' in or related to this line: 'LK.effects.scaleTo(enemy, 1, 1, 1000); // Scale to normal size over 1 second' Line Number: 112
User prompt
Please fix the bug: 'TypeError: LK.effects.scaleTo is not a function' in or related to this line: 'LK.effects.scaleTo(enemy, 1, 1, 1000); // Scale to normal size over 1 second' Line Number: 112
User prompt
сделай так чтобы новые враги сначала были маленькими а потом увеличились до нормального размера
User prompt
сделай так чтобы враг летел также как муха
User prompt
добавь врага, чтобы он выполнял ту же роль что и цели, но только если когда топор коснётся врага, игра закончилась
User prompt
ну ещё
User prompt
ну не настолько а так чтобы смог долететь до уровне счётчика
User prompt
добавь логику, чтобы топор не летел в одну сторону, а имел гравитацию
User prompt
а теперь сделай так, чтобы топор после активации через 3 секунды снова упал вниз, то есть добавить логику чтобы топор не летел в одну сторону, а имел гравитацию
User prompt
Please fix the bug: 'TypeError: setTimeout is not a function' in or related to this line: 'setTimeout(function () {' Line Number: 85
User prompt
Please fix the bug: 'TypeError: setTimeout is not a function' in or related to this line: 'setTimeout(function () {' Line Number: 85
User prompt
а теперь сделай так, чтобы топор после активации через 3 секунды снова упал вниз
User prompt
на активацию это никак не влияет, только после активации
User prompt
а теперь сделай так чтобы топор после активации через 3 секунды снова упала вниз, а если топор упадёт то игра закончится
User prompt
добавь звук топора
/**** * Classes ****/ var Axe = Container.expand(function () { var self = Container.call(this); var axeGraphics = self.attachAsset('axe', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 40; self.gravity = 0.3; // Adjusted gravity effect self.velocityY = -self.speed; // Initial upward velocity self._move_migrated = function () { self.velocityY += self.gravity; // Apply gravity to velocity self.y += self.velocityY; // Update position with velocity self.rotation += 0.1; }; }); var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.direction = 1; self._move_migrated = function () { // Randomize direction change if (Math.random() < 0.05) { self.direction = Math.random() * 2 * Math.PI; // Random angle } // Update position based on direction self.x += self.speed * Math.cos(self.direction); self.y += self.speed * Math.sin(self.direction); // Keep enemy within bounds if (self.x <= 0 || self.x >= 2048) { self.direction = Math.PI - self.direction; // Reflect horizontally } if (self.y <= 0 || self.y >= 2732) { self.direction = -self.direction; // Reflect vertically } }; }); var Target = Container.expand(function () { var self = Container.call(this); var targetGraphics = self.attachAsset('target', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.direction = 1; self._move_migrated = function () { self.x += self.speed * self.direction; if (self.x <= 0 || self.x >= 2048) { self.direction *= -1; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var background = game.attachAsset('green_grass_field', {}); background.width = 2048; background.height = 2732; var targets = []; var axes = []; var score = 0; var kills = 0; var targetSpeed = 5; var enemies = []; var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff", font: "Impact", dropShadow: true, dropShadowColor: "#000000" }); scoreTxt.anchor.set(.5, 0); LK.gui.top.addChild(scoreTxt); var spawnTargets = function spawnTargets() { for (var i = 0; i < 3; i++) { var target = game.addChild(new Target()); target.speed = targetSpeed; target.x = Math.random() * 2048; target.y = Math.random() * (2732 - target.height * 2); targets.push(target); } for (var i = 0; i < 1; i++) { var enemy = game.addChild(new Enemy()); enemy.speed = targetSpeed; enemy.x = Math.random() * 2048; enemy.y = Math.random() * (2732 - enemy.height * 2); enemies.push(enemy); } }; LK.on('tick', function () { if (targets.length == 0) { spawnTargets(); } }); var axe; game.on('down', function (x, y, obj) { var pos = game.toLocal(obj.global); axe = game.addChild(new Axe()); LK.getSound('axe').play(); axe.x = pos.x; axe.y = 2732 - axe.height + 295; axes.push(axe); }); LK.on('tick', function () { for (var i = 0; i < targets.length; i++) { targets[i]._move_migrated(); } for (var i = 0; i < axes.length; i++) { axes[i]._move_migrated(); if (axes[i].y < -50) { axes[i].destroy(); axes.splice(i, 1); } if (axes[i].y <= 0) { LK.showGameOver(); } } for (var i = 0; i < enemies.length; i++) { enemies[i]._move_migrated(); for (var j = 0; j < axes.length; j++) { if (axes[j].intersects(enemies[i])) { LK.showGameOver(); return; } } } for (var i = 0; i < axes.length; i++) { for (var j = 0; j < targets.length; j++) { if (axes[i].intersects(targets[j])) { var distance = Math.sqrt(Math.pow(axes[i].x - targets[j].x, 2) + Math.pow(axes[i].y - targets[j].y, 2)); score += Math.max(0, 100 - distance) + 50; scoreTxt.setText(score); axes[i].destroy(); axes.splice(i, 1); targets[j].destroy(); targets.splice(j, 1); kills++; if (kills % 3 == 0) { targetSpeed += 1; } break; } } } });
===================================================================
--- original.js
+++ change.js
@@ -24,12 +24,22 @@
});
self.speed = 5;
self.direction = 1;
self._move_migrated = function () {
- self.x += self.speed * self.direction;
+ // Randomize direction change
+ if (Math.random() < 0.05) {
+ self.direction = Math.random() * 2 * Math.PI; // Random angle
+ }
+ // Update position based on direction
+ self.x += self.speed * Math.cos(self.direction);
+ self.y += self.speed * Math.sin(self.direction);
+ // Keep enemy within bounds
if (self.x <= 0 || self.x >= 2048) {
- self.direction *= -1;
+ self.direction = Math.PI - self.direction; // Reflect horizontally
}
+ if (self.y <= 0 || self.y >= 2732) {
+ self.direction = -self.direction; // Reflect vertically
+ }
};
});
var Target = Container.expand(function () {
var self = Container.call(this);
axe sprite Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cartoon shooting target sprite Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cartoon field background Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.