User prompt
пересечение пули и игрока засчитывается если радиус пули 10 пересек квадрат 100 на 100 игрока
User prompt
пересечение объектов самолета игрока и bullet в радиусе изображениям, а не объекта
Code edit (1 edits merged)
Please save this source code
User prompt
сделать проверку на пересечения пули радиусом 10 и самолета радиусом 45
User prompt
скорость пули 3
User prompt
сделать проверку на пересечения пули радиусом 10 и самолета радиусом 50
User prompt
сделать проверку пересечения изображения пули радиусом 10 и изображением игрока радиусом х =80 y = 30
User prompt
определить пересечение пули с игроком по маске игрока
Code edit (1 edits merged)
Please save this source code
User prompt
создать маску столкновения для самолета игрока
User prompt
пуля пересекает игрока не в размерах самолета, а в отображении картинки самолета
User prompt
настроить проверку пересечения пули и игрока: пересечение пули радиус = 10 и игрока радиус 100
User prompt
пересечение пули с игроком проверяется по радиусу x=150 y = 80
User prompt
пересечение пули и игрока проверяется пересечением изображения пули к игроку
User prompt
пересечение пули и игрока в в размере изображения, а не объекта
User prompt
если пуля касается игрока, то смерть
User prompt
пуля вылетает в случайном направлении и летит по прямой
Code edit (3 edits merged)
Please save this source code
User prompt
пуля вылетает в рандомном направлении от 0 до 90 градусов и летит ровно
User prompt
пуля летит рандомно от 0 до 90 градусов
User prompt
пуля не преследует игрока, а летит в по направлению своего движения
User prompt
пуля летит в направлении, где в данный момент находится игрок
User prompt
пуля летит в направление движения игрока
User prompt
пуля летит в игрока
User prompt
пуля появляется через 3 секунды, до этого момента она не отображается
/****
* Classes
****/
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 3;
self.visible = false;
self.update = function () {
if (LK.ticks > 180) {
self.visible = true;
self.x += self.speed;
}
};
});
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);
var bullet = new Bullet();
bullet.x = 175;
bullet.y = 2590;
game.addChild(bullet);
// 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();
bullet.update();
for (var i = 0; i < enemyPlanes.length; i++) {
enemyPlanes[i].update();
}
});
// 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();
}
// 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;
}
}, 1000);
});
снаряд от пушки. 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.