Code edit (5 edits merged)
Please save this source code
User prompt
generate an infinite background
User prompt
generate an infinite background
User prompt
create another class for background
User prompt
disable scrolling
User prompt
make background dynamic
User prompt
Please fix the bug: 'tween.to is not a function' in or related to this line: 'tween.to(background.scale, {' Line Number: 218 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
make the background lively
Code edit (1 edits merged)
Please save this source code
User prompt
remove the scrolling of background
User prompt
make the background static
User prompt
make the background scroll seamlessly
User prompt
keep the same blastsound for player destroy also from enemy bulley
User prompt
keep the same blastsound for player destroy also
User prompt
upload our own backgroundmusic
User prompt
make the background dynamic
User prompt
make the gameplay more action
User prompt
create a blast sound effect
User prompt
make the game lively
User prompt
reduce asteroid spawning rate slightly
User prompt
increase the asteroid spawning
User prompt
increase the difficulty in this game
User prompt
fix the background quality issues
User prompt
duplicate and blend the same background after the ending
User prompt
make this background lively
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* 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)) {
// Add a blasting effect
var blast = self.attachAsset('blast', {
anchorX: 0.5,
anchorY: 0.5
});
blast.x = player.x;
blast.y = player.y;
game.addChild(blast);
// Destroy the blast effect after a short delay
LK.setTimeout(function () {
blast.destroy();
}, 500);
// Play blast sound effect
LK.getSound('blastSound').play();
// 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();
// Play blast sound effect
LK.getSound('blastSound').play();
// Increase score by 50 points when target dies
LK.setScore(LK.getScore() + 50);
// 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)) {
// Add a blasting effect
var blast = self.attachAsset('blast', {
anchorX: 0.5,
anchorY: 0.5
});
blast.x = player.x;
blast.y = player.y;
game.addChild(blast);
// Destroy the blast effect after a short delay
LK.setTimeout(function () {
blast.destroy();
}, 500);
// Play blast sound effect
LK.getSound('blastSound').play();
// 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();
/****
* Game Code
****/
LK.playMusic('backgroundMusic');
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
var background = game.attachAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366,
scaleX: game.width / LK.getAsset('background', {}).width,
scaleY: game.height / LK.getAsset('background', {}).height
});
// 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 every 30 ticks and an asteroid every 40 ticks
if (LK.ticks % 30 == 0) {
var enemy = game.addChild(new Enemy());
// Set enemy initial position
enemy.x = Math.random() * 2048;
enemy.y = 0;
}
if (LK.ticks % 40 == 0) {
var asteroid = game.addChild(new Asteroid());
// Set asteroid initial position
asteroid.x = Math.random() * 2048;
asteroid.y = 0;
}
// Move everything except player continuously downwards
game.children.forEach(function (child) {
if (!(child instanceof Player)) {
child.y += 5;
}
if (child === background) {
// Move background slightly slower for a parallax effect
child.y += 1;
// Reset background position when it moves out of view
if (child.y > game.height) {
child.y = 0;
}
}
});
};
var player = game.addChild(new Player());
// Set player initial position
player.x = 1024;
player.y = 2732 - player.height / 2 - 300;
// 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());
LK.getSound('fireBullet').play();
// 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
@@ -14,9 +14,9 @@
anchorX: 0.5,
anchorY: 0.5
});
// Set asteroid speed
- self.speed = 6;
+ self.speed = 3;
// Update function called every game tick
self.update = function () {
// Move asteroid based on speed
self.y += self.speed;
@@ -53,9 +53,9 @@
anchorX: 0.5,
anchorY: 0.5
});
// Set bullet speed
- self.speed = -20;
+ self.speed = -14;
// Update function called every game tick
self.update = function () {
self.y += self.speed;
// Check for collision with enemy and asteroid
@@ -103,9 +103,9 @@
anchorX: 0.5,
anchorY: 0.5
});
// Set enemy speed
- self.speed = 8;
+ self.speed = 5;
// Update function called every game tick
self.update = function () {
// Move enemy based on speed
self.y += self.speed;
@@ -113,9 +113,9 @@
if (self.y > 2732) {
self.destroy();
}
// Enemy fires a bullet every 60 ticks
- if (LK.ticks % 30 == 0) {
+ 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;
@@ -132,9 +132,9 @@
anchorX: 0.5,
anchorY: 0.5
});
// Set bullet speed
- self.speed = 8;
+ self.speed = 5;
// Update function called every game tick
self.update = function () {
self.y += self.speed;
// Check for collision with player
@@ -219,11 +219,19 @@
asteroid.y = 0;
}
// Move everything except player continuously downwards
game.children.forEach(function (child) {
- if (!(child instanceof Player) && child !== background) {
+ if (!(child instanceof Player)) {
child.y += 5;
}
+ if (child === background) {
+ // Move background slightly slower for a parallax effect
+ child.y += 1;
+ // Reset background position when it moves out of view
+ if (child.y > game.height) {
+ child.y = 0;
+ }
+ }
});
};
var player = game.addChild(new Player());
// Set player initial position
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