Code edit (3 edits merged)
Please save this source code
User prompt
противники появляются раз в 1.5 секунды
Code edit (2 edits merged)
Please save this source code
User prompt
увеличить скорость полета пули на 2
User prompt
если в противника уже попали, то повторно в него попасть нельзя, пуля пролетает на свкозь
User prompt
если в противника попали, то повторно пуля в него не попадает, а пролетает на сквозь
Code edit (1 edits merged)
Please save this source code
User prompt
выстрел можно производить раз в 0.5 секунд
Code edit (3 edits merged)
Please save this source code
User prompt
после того как в противника попали и он начинает падать вниз, он исчезает на расстоянии y=2300, а не за нижней частью экрана
User prompt
после попадания в противника, противник исчезает на случайном расстоянии по y координате от 2200 до 2500
User prompt
после попадания в противника, противник плавно начинает вращаться на 45 градусов
Code edit (1 edits merged)
Please save this source code
User prompt
Change the enemy's movement after being hit to move at an angle of 5 degrees
User prompt
после попадания в противника, противник летит не горизонтально вниз а под углом в 20 градусов
Code edit (1 edits merged)
Please save this source code
User prompt
после попадания в противника, противник летит вниз со скоростью 25
User prompt
если пуля попадает в противника, противник не исчезает, а начинает лететь вниз под 15 градусов и уменьшается на 20 пикселей каждую секунду
Code edit (1 edits merged)
Please save this source code
User prompt
пуля в течение полета уменьшается на 3 пикселя каждую секунду
User prompt
УБРАТЬ вращение противников
User prompt
Migrate to the latest version of LK
Code edit (2 edits merged)
Please save this source code
User prompt
противники появляются с рандомным размером от 100 до 200
Code edit (1 edits merged)
Please save this source code
/****
* Classes
****/
// Enemy class for targets
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 4;
self.move = function () {
self.x += self.speed;
self.rotation += 0.25; // Add rotation to the enemy
};
});
// Assets are automatically created based on usage in the code.
// Bullet class for bullets fired by the player
var PlayerBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('playerBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -20;
self.move = function () {
self.x += self.speed * Math.cos(this.direction);
self.y += self.speed * Math.sin(this.direction);
};
self.distanceTo = function (other) {
var dx = other.x - this.x;
var dy = other.y - this.y;
return Math.sqrt(dx * dx + dy * dy);
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xFFFFFF // Init game with white background
});
/****
* Game Code
****/
// Create a background
var background = game.addChild(new Container());
var backgroundGraphics = background.attachAsset('background', {
anchorX: 0.5,
anchorY: 0.5
});
background.x = 1024; // Center horizontally
background.y = 1366; // Center vertically
var playerBullets = [];
var enemies = [];
var spawnEnemyInterval = 120; // Frames until next enemy spawns
var enemySpawnTimer = 0;
// Function to spawn enemies
function spawnEnemy() {
var enemy = new Enemy();
enemy.x = -100; // Start at the left
enemy.y = Math.random() * (1366 - 100) + 100; // Random position from 100 to 1366
enemies.push(enemy);
game.addChild(enemy);
}
// Function to fire a bullet
function fireBullet() {
var bullet = new PlayerBullet();
bullet.x = 1024; // Center horizontally
bullet.y = 2632; // Bottom of the screen
playerBullets.push(bullet);
game.addChild(bullet);
return bullet;
}
// Touch event to fire bullets
var lastBulletTime = 0;
game.on('down', function (obj) {
if (LK.ticks - lastBulletTime >= 60 || playerBullets.length === 0) {
// 60 ticks = 1 second at 60FPS
var bullet = fireBullet();
var touchPos = obj.event.getLocalPosition(game);
var angle = Math.atan2(2632 - touchPos.y, 1024 - touchPos.x);
bullet.direction = angle; // Set direction to shoot towards the touch point
lastBulletTime = LK.ticks;
}
});
// Main game loop
LK.on('tick', function () {
// Move bullets
for (var i = playerBullets.length - 1; i >= 0; i--) {
playerBullets[i].move();
if (playerBullets[i].y < 0) {
// Remove bullets that go off screen
playerBullets[i].destroy();
playerBullets.splice(i, 1);
}
}
// Move enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].move();
if (enemies[j].y > 2732) {
// Remove enemies that go off screen
enemies[j].destroy();
enemies.splice(j, 1);
}
}
// Check for collisions
for (var b = playerBullets.length - 1; b >= 0; b--) {
for (var e = enemies.length - 1; e >= 0; e--) {
if (playerBullets[b] && enemies[e] && playerBullets[b].intersects(enemies[e]) && playerBullets[b].distanceTo(enemies[e]) <= 100) {
// Destroy both bullet and enemy on collision
playerBullets[b].destroy();
playerBullets.splice(b, 1);
enemies[e].destroy();
enemies.splice(e, 1);
break; // Exit loop after collision to avoid errors
}
}
}
// Spawn enemies
if (enemySpawnTimer <= 0) {
spawnEnemy();
enemySpawnTimer = spawnEnemyInterval;
} else {
enemySpawnTimer--;
}
});
черный шар. 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.
Указательный палец нажимает. Мультяшный. 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.
вывеска на двух ниточках с надписью: TImakovDS. 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.