Code edit (1 edits merged)
Please save this source code
User prompt
противник двигается одну секунду горизонтально, а потом в случайном направлении
User prompt
исправить ошибку, когда после начала игры, самолет не меняет свою позици
Code edit (1 edits merged)
Please save this source code
User prompt
начальная скорость самолета -6
User prompt
исправить ошибку, когда самолет противника не двигается
User prompt
самолет противника сначала летит по горизонтали, а потом летает как хочет
User prompt
самолет противника летает в случайном направлении, но преследует цель убить игрока
User prompt
добавить механику противнику как у игрока
User prompt
удалить изображение противника и вставить из ENEMY
User prompt
добавить противника в правой части экрана
User prompt
изменить изображение противника
User prompt
добавить противника в правой части экрана
Code edit (2 edits merged)
Please save this source code
User prompt
переместить изображение death на health_bar
User prompt
изображение death поверх заднего фона
Code edit (5 edits merged)
Please save this source code
User prompt
добавить картинку death рядом y= 100 X = 500
Code edit (1 edits merged)
Please save this source code
Code edit (4 edits merged)
Please save this source code
User prompt
подвинуть все 3 сердца на 20 пикселей вправо
User prompt
добавить третье аналогичное сердце
Code edit (7 edits merged)
Please save this source code
User prompt
добавить второе аналогичное сердце
Code edit (1 edits merged)
Please save this source code
/****
* 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;
};
});
// 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 = 6;
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 heart to the health_bar
var heart = healthBar.attachAsset('heart', {
anchorX: 0.5,
anchorY: 0.5
});
heart.x = 100;
heart.y = 80;
// Ensure the heart is always in the foreground
if (healthBar.children.length > 0) {
healthBar.setChildIndex(heart, healthBar.children.length - 1);
} else {
healthBar.addChild(heart);
}
// 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 plane
var plane1 = new Plane1();
plane1.x = 100;
plane1.y = 2750 - plane1.height; // Bottom of the screen
game.addChild(plane1);
// Create a plane
// Set up game tick
LK.on('tick', function () {
plane1.update();
// 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 plane 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 plane 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) * 6;
plane1.speedY = Math.sin(angle) * 6;
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) * 6;
plane1.speedY = Math.sin(angle) * 6;
plane1.rotation += Math.PI / 60; // Rotate the plane clockwise
}
// Check if the plane 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)) {
// Trigger game over
LK.showGameOver();
}
});
снаряд от пушки. 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.