Code edit (2 edits merged)
Please save this source code
User prompt
when the asteroid class hits player game over
User prompt
when the new bullet class hits player game over
Code edit (3 edits merged)
Please save this source code
User prompt
make new bullet class destroy when they get out of screen
User prompt
make bullet class destroy when they get out of screen
User prompt
make asteroid class destroy when the bullet class hit them
User prompt
spawn these asteroid along with enemy class randomly
User prompt
spawn these asteroids on the screen
User prompt
create another class named asteroid
User prompt
destory enemy class when they get out of player screen
User prompt
destory enemy class when they get out of player screen
User prompt
destroy new bullet class when enemy class destroyed
Code edit (2 edits merged)
Please save this source code
User prompt
optimize the code
Code edit (1 edits merged)
Please save this source code
User prompt
increase the score 100 points when enemy class destroys and update the scoreboard on the screen
User prompt
update score in 100 points when enemy dies
User prompt
create a scoreboard and increase score when enemy dies
Code edit (1 edits merged)
Please save this source code
User prompt
new bullet class does not affect the enemy
User prompt
make the enemy shoot new bullet class towards the player when appearing on the screen
User prompt
make the enemy shoot new bullet class towards the player
User prompt
make the enemy shoot new bullet class
User prompt
create a new bullet class and assign it to enemy
/****
* Classes
****/
// Asteroid class
var Asteroid = Container.expand(function () {
var self = Container.call(this);
// Attach asteroid asset
var asteroidGraphics = self.attachAsset('asteroid', {
anchorX: 0.5,
anchorY: 0.5
});
// Set asteroid speed
self.speed = 3;
// Update function called every game tick
self.update = function () {
// Move asteroid based on speed
self.y += self.speed;
// Destroy asteroid when it gets out of player screen
if (self.y > 2732) {
self.destroy();
}
// Check for collision with player
if (self.intersects(player)) {
// Trigger game over when asteroid hits player
LK.showGameOver();
}
};
});
// Bullet class
var Bullet = Container.expand(function () {
var self = Container.call(this);
// Attach bullet asset
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
// Set bullet speed
self.speed = -14;
// Update function called every game tick
self.update = function () {
self.y += self.speed;
// Check for collision with enemy and asteroid
var targets = game.children.filter(function (child) {
return child instanceof Enemy || child instanceof Asteroid;
});
for (var i = 0; i < targets.length; i++) {
var target = targets[i];
if (self.intersects(target)) {
// Destroy target and bullet on collision
target.destroy();
self.destroy();
// Increase score by 100 points when target dies
LK.setScore(LK.getScore() + 100);
// Update the scoreboard
scoreTxt.setText(LK.getScore());
// Add a blasting effect
var blast = self.attachAsset('blast', {
anchorX: 0.5,
anchorY: 0.5
});
blast.x = self.x;
blast.y = self.y;
game.addChild(blast);
// Destroy the blast effect after a short delay
LK.setTimeout(function () {
blast.destroy();
}, 500);
break;
}
}
// Destroy bullet when it gets out of player screen
if (self.y < 0 || self.y > 2732) {
self.destroy();
}
};
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
// Attach enemy asset
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
// Set enemy speed
self.speed = 5;
// Update function called every game tick
self.update = function () {
// Move enemy based on speed
self.y += self.speed;
// Destroy enemy when it gets out of player screen
if (self.y > 2732) {
self.destroy();
}
// Enemy fires a bullet every 60 ticks
if (LK.ticks % 60 == 0) {
var enemyBullet = game.addChild(new EnemyBullet());
// Set bullet initial position to enemy's position
enemyBullet.x = self.x;
enemyBullet.y = self.y;
// Set bullet speed to move downwards
enemyBullet.speed = 6;
}
};
});
// EnemyBullet class
var EnemyBullet = Container.expand(function () {
var self = Container.call(this);
// Attach bullet asset
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
// Set bullet speed
self.speed = 5;
// Update function called every game tick
self.update = function () {
self.y += self.speed;
// Check for collision with player
if (self.intersects(player)) {
// Trigger game over when bullet hits player
LK.showGameOver();
}
};
});
// Player class
var Player = Container.expand(function () {
var self = Container.call(this);
// Attach player asset
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
// Set player speed
self.speed = 5;
// Update function called every game tick
self.update = function () {
// Player movement is handled in game.move event
};
});
/****
* Initialize Game
****/
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Create a scoreboard and display it on the screen
var scoreTxt = new Text2('0', {
size: 150,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
game.update = function () {
// Spawn an enemy and an asteroid every 60 ticks
if (LK.ticks % 15 == 0) {
var enemy = game.addChild(new Enemy());
// Set enemy initial position
enemy.x = Math.random() * 2048;
enemy.y = 0;
var asteroid = game.addChild(new Asteroid());
// Set asteroid initial position
asteroid.x = Math.random() * 2048;
asteroid.y = 0;
}
};
var player = game.addChild(new Player());
// Set player initial position
player.x = 1024;
player.y = 2732 - player.height / 2 - 100;
// Add mouse move event to the game
game.move = function (x, y, obj) {
// Move player only on x axis
player.x = x;
};
game.down = function (x, y, obj) {
// Create a bullet instance
var bullet = game.addChild(new Bullet());
// Set bullet initial position to player's position
bullet.x = player.x;
bullet.y = player.y;
};
// Update the scoreboard every game tick
scoreTxt.setText(LK.getScore()); ===================================================================
--- original.js
+++ change.js
@@ -159,9 +159,9 @@
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
game.update = function () {
// Spawn an enemy and an asteroid every 60 ticks
- if (LK.ticks % 60 == 0) {
+ if (LK.ticks % 15 == 0) {
var enemy = game.addChild(new Enemy());
// Set enemy initial position
enemy.x = Math.random() * 2048;
enemy.y = 0;
Space craft in facing forward. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
spacecraft in 4k
fire blast. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
asteroid. Single Game Texture. In-Game asset. 2d. No shadows
dark nebula galaxy 4k. Single Game Texture. In-Game asset. 2d. Blank background. No shadows