Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
User prompt
когда пуля игрока и пуля врага касаются друг друга, то они должны исчезнуть.
User prompt
когда враги начинают вращаться, то пули игрока должны повернутся в направление врагов
User prompt
когда враги начинают вращаться, пули игрока должны повернутся на этих врагов.
User prompt
сделай чтобы астероиды спавнились с разным размером.
User prompt
когда игрок стреляет, то был звук.
User prompt
сделай врагам и игроку шкалу здоровья.
User prompt
сделай чтобы когда игрок стрелял то пуля поворачивалась в направление врага
User prompt
сделай чтобы пули игрока летели в врагов.
User prompt
сделай пули врага медленее
User prompt
сделай чтобы когда враг стрелял то пуля повернулась в направлении игрока.
User prompt
сделай чтобы пули врага летели в направление игрока
User prompt
когда враги начали вращаться, то они стреляли в направление игрока.
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'update')' in or related to this line: 'asteroids[k].update();' Line Number: 180
User prompt
когда пуля игрока касается астероида, то пуля игрока исчезает.
User prompt
Сделай, чтобы, когда враг почти долетел до середины экрана, он перестал двигаться и начал вращаться по синусу и косинусу.
User prompt
Сделай, чтобы когда враги почти долетели до экрана, он перестал двигаться и начал вращаться по синусу и косинусу.
User prompt
сделай чтобы когда враги почти долетел до середины экрана то он перестал двигаться и начал вращаться.
User prompt
реши это.
User prompt
сделай счётчик более красивым
User prompt
когда враг умрёт, увеличь счёт на 10.
Code edit (1 edits merged)
Please save this source code
User prompt
когда враг касается пули игрока, то он умирает
/****
* Classes
****/
// Asteroid class
var Asteroid = Container.expand(function () {
var self = Container.call(this);
var asteroidGraphics = self.attachAsset('asteroid', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 7;
self.update = function () {
self.y += self.speed;
if (self.y > 2732 + asteroidGraphics.height) {
self.destroy();
asteroids.splice(asteroids.indexOf(self), 1);
}
};
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.update = function () {
self.y += self.speed;
if (self.y > 2732 + enemyGraphics.height) {
self.destroy();
enemies.splice(enemies.indexOf(self), 1);
}
};
});
//<Assets used in the game will automatically appear here>
// Hero class
var Hero = Container.expand(function () {
var self = Container.call(this);
var heroGraphics = self.attachAsset('hero', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 10;
self.update = function () {
// Hero update logic
};
self.shoot = function () {
var bullet = new HeroBullet();
bullet.x = self.x;
bullet.y = self.y - heroGraphics.height / 2;
game.addChild(bullet);
heroBullets.push(bullet);
};
});
// HeroBullet class
var HeroBullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('heroBullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = -15;
self.update = function () {
self.y += self.speed;
if (self.y < -bulletGraphics.height) {
self.destroy();
heroBullets.splice(heroBullets.indexOf(self), 1);
}
};
});
var StarBackground = Container.expand(function () {
var self = Container.call(this);
var background = self.attachAsset('starBackground', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.update = function () {
self.y += self.speed;
if (self.y > 2732) {
self.y = 0;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Initialize star background
var starBackground = new StarBackground();
starBackground.x = 2048 / 2;
starBackground.y = 0;
game.addChild(starBackground);
// Initialize arrays and variables
var hero;
var heroBullets = [];
var enemies = [];
var asteroids = [];
var score = 0;
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Initialize hero
hero = new Hero();
hero.x = 2048 / 2;
hero.y = 2732 - 200;
game.addChild(hero);
// Handle game events
game.down = function (x, y, obj) {
hero.x = x;
hero.y = y;
};
game.move = function (x, y, obj) {
hero.x = x;
hero.y = y;
};
game.update = function () {
// Update star background
starBackground.update();
// Update hero bullets
for (var i = heroBullets.length - 1; i >= 0; i--) {
heroBullets[i].update();
// Check for collision between hero bullets and enemies
for (var i = heroBullets.length - 1; i >= 0; i--) {
for (var j = enemies.length - 1; j >= 0; j--) {
if (heroBullets[i].intersects(enemies[j])) {
enemies[j].destroy();
enemies.splice(j, 1);
heroBullets[i].destroy();
heroBullets.splice(i, 1);
break;
}
}
}
}
// Update enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].update();
if (hero.intersects(enemies[j])) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
// Update asteroids
for (var k = asteroids.length - 1; k >= 0; k--) {
asteroids[k].update();
if (hero.intersects(asteroids[k])) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
// Spawn enemies
if (LK.ticks % 60 == 0) {
var enemy = new Enemy();
enemy.x = Math.random() * 2048;
enemy.y = -enemy.height;
game.addChild(enemy);
enemies.push(enemy);
}
// Spawn asteroids
if (LK.ticks % 180 == 0) {
var asteroid = new Asteroid();
asteroid.x = Math.random() * 2048;
asteroid.y = -asteroid.height;
game.addChild(asteroid);
asteroids.push(asteroid);
}
// Update score
scoreTxt.setText(score);
};
// Shoot bullets
game.down = function (x, y, obj) {
hero.shoot();
};