Code edit (2 edits merged)
Please save this source code
User prompt
объект bullet появляется в нижней левой части и летит по диагонали вправа
User prompt
bullet появляется в центре экрана и летит направо со скоростью 3
User prompt
Добавить объект bullet в центре экрана
Code edit (1 edits merged)
Please save this source code
User prompt
удалить класс пули
User prompt
добавить движение пуляи
User prompt
пули перемещаются по направлению движения самолета
User prompt
исправить ошибку, когда пули остаются на месте вылета
User prompt
пули летят из самолета и вылетают за экран
User prompt
Please fix the bug: 'ReferenceError: bullets is not defined' in or related to this line: 'for (var i = 0; i < bullets.length; i++) {' Line Number: 265
User prompt
добавить движение выстрелов
User prompt
пули у игрока вылетают и двигаются со скоростью 10
User prompt
добавить выстрелы игроку
Code edit (1 edits merged)
Please save this source code
User prompt
исправить ошибку, когда пуля не отображается в центре экрана
User prompt
отобразить пулю в центре экрана
User prompt
добавить класс с пулями
Code edit (1 edits merged)
Please save this source code
User prompt
Bullet вылетает из cannon и летит в сторону игрока
User prompt
Создать объект bullet, bullet летит с нижней части экрана вверх
User prompt
Пуля летит с нижней части экрана вверх
User prompt
Удалить класс пули
User prompt
Удалить пули
User prompt
Добавить движение пули
/**** * Classes ****/ var Cannon = Container.expand(function () { var self = Container.call(this); var cannonGraphics = self.attachAsset('Cannon', { anchorX: 0.5, anchorY: 0.5 }); }); // Cannon2 class var Cannon2 = Container.expand(function () { var self = Container.call(this); var cannon2Graphics = self.attachAsset('Cannon2', { anchorX: 0.5, anchorY: 0.5 }); }); // EnemyPlane class var EnemyPlane = Container.expand(function () { var self = Container.call(this); var enemyPlaneGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = -6; self.speedY = 0; // Update enemy plane position self.update = function () { self.x += self.speedX; self.y -= self.speed; }; }); // EnemyPlaneLeft class var EnemyPlaneLeft = Container.expand(function () { var self = Container.call(this); var enemyPlaneGraphics = self.attachAsset('Enemyleft', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 6; self.speedY = 0; // Update enemy plane position self.update = function () { self.x += self.speedX; self.y += self.speedY; }; }); // Plane1 class var Plane1 = Container.expand(function () { var self = Container.call(this); var planeGraphics = self.attachAsset('plane', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 7; self.speedY = 0; // Update plane position self.update = function () { self.x += self.speedX; self.y += self.speedY; // Check if the plane has crossed the screen boundary if (self.x < 0) { self.x = 2048; } else if (self.x > 2048) { self.x = 0; } // Prevent the plane from crossing the floor and ceiling if (self.y < 0) { self.y = 0; self.speedY = 0; } else if (self.y > 2752 - self.height) { self.y = 2752 - self.height; self.speedY = 0; } }; }); /**** * Initialize Game ****/ // Assets are automatically created based on usage in the code. var game = new LK.Game({ backgroundColor: 0xffffff // Init game with white background }); /**** * Game Code ****/ var background2 = game.attachAsset('background2', { anchorX: 0.5, anchorY: 0.5, scaleX: 1, scaleY: 1 }); background2.x = 2175 / 2; background2.y = 2620 / 2; // Add background to the bottom of the game var background = game.attachAsset('background', { anchorX: 0, anchorY: 1, scaleX: 1, scaleY: 1 }); background.y = 2732; var enemyPlanes = []; // Global array to keep track of enemy planes var enemyPlane; // Global variable to keep track of the enemy plane // Create a player plane var plane1 = new Plane1(); plane1.x = 150; // Moved 50 units to the right plane1.y = 2750 - plane1.height; // Bottom of the screen game.addChild(plane1); // Create a cannon var cannon = new Cannon(); cannon.x = -100; // Position at the bottom left of the screen cannon.y = 2660; game.addChild(cannon); // Create a cannon2 var cannon2 = new Cannon2(); cannon2.x = 2150; // Position at the bottom left of the screen cannon2.y = 2660; game.addChild(cannon2); // Create the rest of the enemy planes every 2 seconds for the first 7 seconds var enemySpawnTimer = LK.setInterval(function () { enemyPlane = new EnemyPlane(); enemyPlane.x = 2150; enemyPlane.y = 100 + Math.random() * (2732 - enemyPlane.height - 100); // Random y-coordinate between 100 and 2732 minus the height of the enemy plane game.addChild(enemyPlane); enemyPlanes.push(enemyPlane); var enemyPlaneLeft = new EnemyPlaneLeft(); enemyPlaneLeft.x = -100; enemyPlaneLeft.y = 100 + Math.random() * (2732 - enemyPlaneLeft.height - 100); // Random y-coordinate between 100 and 2732 minus the height of the enemy plane game.addChild(enemyPlaneLeft); enemyPlanes.push(enemyPlaneLeft); }, 1500); // After 7 seconds, change the enemy spawn interval to 1 every 1.3 seconds LK.setTimeout(function () { LK.clearInterval(enemySpawnTimer); enemySpawnTimer = LK.setInterval(function () { enemyPlane = new EnemyPlane(); enemyPlane.x = 2150; enemyPlane.y = 100 + Math.random() * (2732 - enemyPlane.height - 100); // Random y-coordinate between 100 and 2732 minus the height of the enemy plane game.addChild(enemyPlane); enemyPlanes.push(enemyPlane); var enemyPlaneLeft = new EnemyPlaneLeft(); enemyPlaneLeft.x = -100; enemyPlaneLeft.y = 100 + Math.random() * (2732 - enemyPlaneLeft.height - 100); // Random y-coordinate between 100 and 2732 minus the height of the enemy plane game.addChild(enemyPlaneLeft); enemyPlanes.push(enemyPlaneLeft); }, 1300); }, 5000); // After 14 seconds, change the enemy spawn interval to 1 every second LK.setTimeout(function () { LK.clearInterval(enemySpawnTimer); enemySpawnTimer = LK.setInterval(function () { enemyPlane = new EnemyPlane(); enemyPlane.x = 2150; enemyPlane.y = 100 + Math.random() * (2732 - enemyPlane.height - 100); // Random y-coordinate between 100 and 2732 minus the height of the enemy plane game.addChild(enemyPlane); enemyPlanes.push(enemyPlane); var enemyPlaneLeft = new EnemyPlaneLeft(); enemyPlaneLeft.x = -100; enemyPlaneLeft.y = 100 + Math.random() * (2732 - enemyPlaneLeft.height - 100); // Random y-coordinate between 100 and 2732 minus the height of the enemy plane game.addChild(enemyPlaneLeft); enemyPlanes.push(enemyPlaneLeft); }, 1000); }, 11000); // Set up game tick LK.on('tick', function () { plane1.update(); // Update all enemy planes for (var i = 0; i < enemyPlanes.length; i++) { enemyPlanes[i].update(); } // EnemyBot removed, no initialization here // Removed enemyBot.stateTime increment // EnemyBot related code removed // Player's plane no longer shoots bullets }); // Flags to track if the screen is being touched var isTouchingLeft = false; var isTouchingRight = false; // Change enemy direction when the screen is touched var initialTouchPosition = null; game.on('down', function (obj) { initialTouchPosition = obj.event.getLocalPosition(game); }); game.on('move', function (obj) { if (initialTouchPosition) { var currentTouchPosition = obj.event.getLocalPosition(game); var swipeDirection = currentTouchPosition.x - initialTouchPosition.x; if (swipeDirection < 0) { isTouchingLeft = true; isTouchingRight = false; } else if (swipeDirection > 0) { isTouchingRight = true; isTouchingLeft = false; } } }); // Stop changing enemy direction when the screen is no longer being touched game.on('up', function (obj) { isTouchingLeft = false; isTouchingRight = false; initialTouchPosition = null; }); // In the game tick, change plane direction while the screen is being touched LK.on('tick', function () { if (isTouchingLeft) { var angle = Math.atan2(plane1.speedY, plane1.speedX); angle -= Math.PI / 60; // Subtract 1.5 degrees (in radians) for counter-clockwise rotation plane1.speedX = Math.cos(angle) * 7; plane1.speedY = Math.sin(angle) * 7; plane1.rotation -= Math.PI / 60; // Rotate the plane counter-clockwise } if (isTouchingRight && LK.ticks > 78) { var angle = Math.atan2(plane1.speedY, plane1.speedX); angle += Math.PI / 60; // Add 1.5 degrees (in radians) for clockwise rotation plane1.speedX = Math.cos(angle) * 7; plane1.speedY = Math.sin(angle) * 7; plane1.rotation += Math.PI / 60; // Rotate the plane clockwise } // Check if the plane crosses the side boundaries of the screen, touches the top or bottom of the screen, or collides with the health_bar if (plane1.x <= 70 || plane1.x >= 2170 - plane1.width || plane1.y <= 70 || plane1.y >= 2752 - plane1.height) { // Trigger game over LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } // Define bullets array var bullets = []; // Check for collision between player and enemy planes for (var i = 0; i < enemyPlanes.length; i++) { if (plane1.x < enemyPlanes[i].x + 100 && plane1.x + 100 > enemyPlanes[i].x && plane1.y < enemyPlanes[i].y + 100 && plane1.y + 100 > enemyPlanes[i].y) { // Add a red flash screen effect LK.effects.flashScreen(0xff0000, 1000); // Trigger game over LK.showGameOver(); } } // Delay the movement of the cannons by 4 seconds after the game starts LK.setTimeout(function () { if (cannon.x < 100) { cannon.x += 2; } if (cannon2.x > 1950) { cannon2.x -= 2; } }, 4000); });
===================================================================
--- original.js
+++ change.js
@@ -1,22 +1,7 @@
/****
* Classes
****/
-// Bullet class
-var Bullet = Container.expand(function () {
- var self = Container.call(this);
- var bulletGraphics = self.attachAsset('bullet', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.speed = -10;
- self.move = function () {
- self.x += self.speed * Math.cos(plane1.rotation);
- self.y += self.speed * Math.sin(plane1.rotation);
- };
- self.x = 700;
- self.y = 800;
-});
var Cannon = Container.expand(function () {
var self = Container.call(this);
var cannonGraphics = self.attachAsset('Cannon', {
anchorX: 0.5,
@@ -242,31 +227,8 @@
LK.showGameOver();
}
// Define bullets array
var bullets = [];
- // Player's plane shoots bullets every 30 ticks
- if (LK.ticks % 30 == 0) {
- var bullet = new Bullet();
- bullet.x = plane1.x + plane1.width / 2;
- bullet.y = plane1.y + plane1.height / 2;
- game.addChild(bullet);
- bullets.push(bullet);
- // Move the bullet immediately after it is created
- bullet.move();
- }
- // Move the bullets and remove them when they leave the screen
- for (var i = 0; i < bullets.length; i++) {
- bullets[i].move();
- // If the bullet has left the screen
- if (bullets[i].y < 0 || bullets[i].y > 2732 || bullets[i].x < 0 || bullets[i].x > 2048) {
- // Remove the bullet from the game
- game.removeChild(bullets[i]);
- // Remove the bullet from the bullets array
- bullets.splice(i, 1);
- // Decrement i so the next bullet isn't skipped
- i--;
- }
- }
// Check for collision between player and enemy planes
for (var i = 0; i < enemyPlanes.length; i++) {
if (plane1.x < enemyPlanes[i].x + 100 && plane1.x + 100 > enemyPlanes[i].x && plane1.y < enemyPlanes[i].y + 100 && plane1.y + 100 > enemyPlanes[i].y) {
// Add a red flash screen effect
снаряд от пушки. 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.