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); self.id = Math.floor(Math.random() * 10000); // Assign a random id to each enemy var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * (6 - 4) + 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; if (self.id % 3 == 0) { self.y += 2 * Math.sin(LK.ticks / 60); // Move up and down smoothly by 30 } } }; }); // 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 = -23; 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 redBar = game.addChild(LK.getAsset('Red', { anchorX: 1, anchorY: 0.5, x: 2048, y: 1366 })); var playerBullets = []; var enemies = []; var spawnEnemyInterval = 150; // 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 - 150) + 150; // 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 >= 60 || 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--) { var bullet = playerBullets[b]; if (bullet) { for (var e = enemies.length - 1; e >= 0; e--) { var enemy = enemies[e]; if (enemy && !enemy.hit && bullet.intersects(enemy) && bullet.distanceTo(enemy) <= 100) { if (enemy.x > 1948) { LK.effects.flashObject(redBar, 0xe22400, 500); } // Mark enemy as hit and destroy the bullet on collision bullet.destroy(); playerBullets.splice(b, 1); enemy.hit = true; break; // Exit loop after collision to avoid errors } } } } // Spawn enemies if (enemySpawnTimer <= 0) { spawnEnemy(); enemySpawnTimer = spawnEnemyInterval; } else { enemySpawnTimer--; } });
===================================================================
--- original.js
+++ change.js
@@ -58,22 +58,22 @@
/****
* Game Code
****/
-var redBar = game.addChild(LK.getAsset('Red', {
- anchorX: 1,
- anchorY: 0.5,
- x: 2048,
- y: 1366
-}));
// 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 redBar = game.addChild(LK.getAsset('Red', {
+ anchorX: 1,
+ anchorY: 0.5,
+ x: 2048,
+ y: 1366
+}));
var playerBullets = [];
var enemies = [];
var spawnEnemyInterval = 150; // Frames until next enemy spawns
var enemySpawnTimer = 0;
черный шар. 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.