Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'ReferenceError: Can't find variable: healthBar' in or related to this line: 'if (plane1.x <= 70 || plane1.x >= 2170 - plane1.width || plane1.y <= 0 || plane1.y >= 2752 - plane1.height || plane1.intersects(healthBar)) {' Line Number: 223
User prompt
Удалить health_bar
User prompt
Удалить firstenemyspawntimer
Code edit (2 edits merged)
Please save this source code
User prompt
Добавить противника enemyleft, который появляется в левой части экрана и летит направо.
Code edit (6 edits merged)
Please save this source code
User prompt
Сдвинуть по y координате респаун игрока на 50 вправо
Code edit (2 edits merged)
Please save this source code
User prompt
Игрок не может пролететь сквозь стены, при пересечении стены сразу смерть
User prompt
Противник не может появляться на расстояние от 0 до 200 по y координате
Code edit (1 edits merged)
Please save this source code
User prompt
Противник появляется каждую секунду
User prompt
Убрать расстояние изображения противника при создании противника
User prompt
Противники появляются каждые 4 секунды
User prompt
Исправить ошибку, когда противники появляются справа экрана и не летят
User prompt
Please fix the bug: 'ReferenceError: Can't find variable: enemyPlanes' in or related to this line: 'for (var i = 0; i < enemyPlanes.length; i++) {' Line Number: 192
User prompt
Исправить ошибку, когда первый противник останавливается и перестает лететь
User prompt
Первый противник вылетает через 2 секунды , остальные каждые 5 секунд
User prompt
Please fix the bug: 'TypeError: undefined is not an object (evaluating 'enemyPlane.update')' in or related to this line: 'enemyPlane.update();' Line Number: 184
User prompt
Please fix the bug: 'ReferenceError: Can't find variable: enemyPlane' in or related to this line: 'enemyPlane.update();' Line Number: 183
User prompt
Противник вылетает из за стены каждые 5 секунд
Code edit (1 edits merged)
Please save this source code
User prompt
Исправил ошибку, когда при пересечении стены наступил game over, но игрок появился на другой части стены
User prompt
Игрок не может пересекать боковые части экрана, если пересек то смерть
/**** * Classes ****/ // Bullet class var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { width: 15, height: 15, color: 0xffffff, shape: 'box' }); self.speed = -30; // Move bullet self.move = function () { self.x += self.speedX; self.y += self.speedY; }; }); // 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 = -7; 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; } }; // Plane shoots a bullet self.shoot = function () { var bullet = new Bullet(); // Set bullet position to the front of the plane var planeFrontX = self.x + self.width / 2 * Math.cos(self.rotation); var planeFrontY = self.y + self.width / 2 * Math.sin(self.rotation); bullet.x = planeFrontX; bullet.y = planeFrontY; // Set bullet speed to twice the plane's speed in the direction of the plane bullet.speedX = 2 * self.speedX; bullet.speedY = 2 * self.speedY; bullets.push(bullet); game.addChild(bullet); }; }); /**** * 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 ****/ // Add health_bar to the top of the game var healthBar = LK.gui.top.attachAsset('health_bar', { anchorX: 0.5, anchorY: 0 }); healthBar.x = 2048 / 8; healthBar.y = -20; // Add first heart to the health_bar var heart1 = healthBar.attachAsset('heart', { anchorX: 0.5, anchorY: 0.5 }); heart1.x = 395; heart1.y = 90; // Ensure the heart is always in the foreground if (healthBar.children.length > 0) { healthBar.setChildIndex(heart1, healthBar.children.length - 1); } else { healthBar.addChild(heart1); } // Add second heart to the health_bar var heart2 = healthBar.attachAsset('heart', { anchorX: 0.5, anchorY: 0.5 }); heart2.x = 280; heart2.y = 90; // Ensure the heart is always in the foreground if (healthBar.children.length > 0) { healthBar.setChildIndex(heart2, healthBar.children.length - 1); } else { healthBar.addChild(heart2); } // Add third heart to the health_bar var heart3 = healthBar.attachAsset('heart', { anchorX: 0.5, anchorY: 0.5 }); heart3.x = 165; heart3.y = 90; // Ensure the heart is always in the foreground if (healthBar.children.length > 0) { healthBar.setChildIndex(heart3, healthBar.children.length - 1); } else { healthBar.addChild(heart3); } // Add background2 to the middle of the game 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 bullets = []; // Global array to keep track of bullets var bullets = []; // Global array to keep track of bullets // Create a player plane var plane1 = new Plane1(); plane1.x = 100; plane1.y = 2750 - plane1.height; // Bottom of the screen game.addChild(plane1); // Create an enemy plane var enemyPlane = new EnemyPlane(); enemyPlane.x = 2150 - enemyPlane.width; enemyPlane.y = 200 + Math.random() * (2532 - enemyPlane.height); // Random y-coordinate between 200 and 2732 minus the height of the enemy plane game.addChild(enemyPlane); // Set up game tick LK.on('tick', function () { plane1.update(); enemyPlane.update(); // EnemyBot removed, no initialization here // Removed enemyBot.stateTime increment // EnemyBot related code removed // Plane shoots a bullet every 0.8 seconds if (LK.ticks % 48 == 0) { plane1.shoot(); } // Update and check bullets for (var i = bullets.length - 1; i >= 0; i--) { bullets[i].move(); // Remove off-screen bullets if (bullets[i].x > 2048 || bullets[i].y > 2732) { bullets[i].destroy(); bullets.splice(i, 1); } } }); // 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 <= 150 || plane1.x >= 2048 || plane1.y <= 0 || plane1.y >= 2752 - plane1.height || plane1.intersects(healthBar)) { // Trigger game over LK.showGameOver(); } });
===================================================================
--- original.js
+++ change.js
@@ -226,9 +226,9 @@
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.y <= 0 || plane1.y >= 2752 - plane1.height || plane1.intersects(healthBar)) {
+ if (plane1.x <= 150 || plane1.x >= 2048 || plane1.y <= 0 || plane1.y >= 2752 - plane1.height || plane1.intersects(healthBar)) {
// Trigger game over
LK.showGameOver();
}
});
\ No newline at end of file
снаряд от пушки. 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.