User prompt
Если утка пересекла границу в половину экрана, то у red прозрачность равно 80 процентов
User prompt
Автоматически увеличивать и уменьшать прозрачность у red
User prompt
При пересечении уткой половину экрана, red начинает моргать
User prompt
Если утка пересекла x=1500, то прозрачность red доходит до 50 процентов и опять доходит до 0
User prompt
Изначально red прозрачная на 100 процентов
User prompt
Перенести red на слой выше, по отношению к background
User prompt
Добавить red в правую сторону экрана. В начале игры прозрачная, а как противник приближается к правой стороне, red начинает моргать
User prompt
Про приближении противника к правому краю, начинает правая сторона моргать красным
Code edit (4 edits merged)
Please save this source code
User prompt
каждый 5 противник плавно двигается вверх и вниз на 30
User prompt
после 10 секунды противники начинают плавно подниматься и опускаться
Code edit (1 edits merged)
Please save this source code
User prompt
противники начинаю лететь с рандомной скоростью от 2 до 5
Code edit (1 edits merged)
Please save this source code
User prompt
уеличить скорость противника на 1
User prompt
через 10 секунд противник начинает то опускаться вниз на 100, то подниматься вверх на 100
User prompt
оптимизировать игру
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 секунд
/****
* 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.hit = false;
self._move_migrated = function () {
if (self.hit) {
var angle = 70 * (Math.PI / 180); // Convert angle to radians
self.x += 20 * Math.cos(angle); // Move horizontally based on the angle
self.y += 20 * Math.sin(angle); // Move vertically based on the angle
self.scale.x -= 20 / 60 / enemyGraphics.width; // Decrease width by 20 pixels per second
self.scale.y -= 20 / 60 / enemyGraphics.height; // Decrease height by 20 pixels per second
self.rotation += Math.PI / 4 / 60; // Rotate by 45 degrees per second
} else {
self.x += self.speed;
}
};
});
// 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_migrated = function () {
self.x += self.speed * Math.cos(this.direction);
self.y += self.speed * Math.sin(this.direction);
self.scale.x -= 10 / 60 / bulletGraphics.width; // Decrease width by 3 pixels per second
self.scale.y -= 10 / 60 / bulletGraphics.height; // Decrease height by 3 pixels per second
};
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 enemySize = Math.random() * (200 - 130) + 130;
var enemy = new Enemy();
enemy.scale.x = enemySize / 200;
enemy.scale.y = enemySize / 200;
enemy.x = -130; // 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 (x, y, obj) {
if (LK.ticks - lastBulletTime >= 30 || playerBullets.length === 0) {
// 30 ticks = 0.5 second at 60FPS
var bullet = fireBullet();
var touchPos = game.toLocal(obj.global);
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_migrated();
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_migrated();
if (enemies[j].y > 2300) {
// Remove enemies that go off screen or become too small
if (enemies[j].y > 2300 || enemies[j].scale.x <= 0 || enemies[j].scale.y <= 0) {
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) {
// Mark enemy as hit and destroy the bullet on collision
playerBullets[b].destroy();
playerBullets.splice(b, 1);
enemies[e].hit = true;
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.