User prompt
Spawn an explosion when the player hits an enemy. Wait 1 second before showing the game over screen
Code edit (13 edits merged)
Please save this source code
User prompt
Ensure that the enemies still spawn from off screen
User prompt
Randomize the spawning of the enemies in the air on the x axis as well. Make them start to spawn after 5 points instead of 10
User prompt
Randomize the spawning of enemies in the air so that they don't match with the 1s on the ground
User prompt
After scoring 10 points, start to spawn another row of enemies in the air
User prompt
Increase the enemy size by 25%
User prompt
Show the enemies in front of the ground layer
User prompt
Make the enemies on the foreground layer
Code edit (1 edits merged)
Please save this source code
User prompt
swap the speed of the nearBackground and farBackground
User prompt
Make the nearBackground fit half the screen height
User prompt
Change the movement speed of the nearBackground and farBackground so that they have a parallax effect
User prompt
Make the far background image the size of half the screen height
Code edit (3 edits merged)
Please save this source code
User prompt
Slowly move them further to the right hand side of the screen when they score points.
User prompt
Have them all the way to the right at 20 points
User prompt
Have them all the way to the right of the screen once they have gotten 50 points
User prompt
Start the player closer to the left side of the screen and have them move further to the right as they score more points. Clamp to the right hand side of the screen 90% once they get 100 points
Code edit (3 edits merged)
Please save this source code
User prompt
Make the score be the top layer
User prompt
Show the current score on the top right of the screen
User prompt
Make the speed increase for every successful jump
User prompt
Make the speed increase about 50% more
User prompt
Speed up the movement as time progresses
/**** * Classes ****/ // Define a class for enemies var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, width: 150, height: 150 }); self.speed = 5; self.update = function () { self.x -= self.speed; if (self.x < -10) { self.destroy(); } }; }); // Define a class for the far background layer var FarBackground = Container.expand(function () { var self = Container.call(this); var farBackgroundGraphics = self.attachAsset('farBackground', { anchorX: 0, anchorY: 0, height: 2732 / 1.8 // Half of the screen height }); self.speed = 1; self.update = function () { self.x -= self.speed; if (self.x <= -2048) { if (self === farBackground1) { self.x = farBackground2.x + 2048; } else if (self === farBackground2) { self.x = farBackground1.x + 2048; } } }; }); // Define a class for the ground layer of the background var Ground = Container.expand(function () { var self = Container.call(this); var groundGraphics = self.attachAsset('ground', { anchorX: 0, anchorY: 0, height: 2732 / 1.9 // Half of the screen height }); self.speed = 5; self.update = function () { self.x -= self.speed; self.y = 2732 / 2.1; // Player's y position if (self.x <= -2040) { if (self === ground1) { self.x = ground2.x + 2040; } else if (self === ground2) { self.x = ground1.x + 2040; } } }; }); // Define a class for the near background layer var NearBackground = Container.expand(function () { var self = Container.call(this); var nearBackgroundGraphics = self.attachAsset('nearBackground', { anchorX: 0, anchorY: 0, height: 2732 / 1.8 // Half of the screen height }); self.speed = 3; self.update = function () { self.x -= self.speed; if (self.x <= -2048) { if (self === nearBackground1) { self.x = nearBackground2.x + 2048; } else if (self === nearBackground2) { self.x = nearBackground1.x + 2048; } } }; }); //<Assets used in the game will automatically appear here> // Define a class for the player character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 40; self.isJumping = false; self.velocityY = 0; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // Decreased gravity effect by 30% if (self.y >= 2732 / 2) { // Ground level self.y = 2732 / 2; self.isJumping = false; self.velocityY = 0; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ // Initialize the ground layer var ground1 = new Ground(); ground1.x = 0; ground1.y = 2732; // Position at the bottom of the screen var ground2 = new Ground(); ground2.x = 2048; ground2.y = 2732; // Position at the bottom of the screen // Initialize the near background layer var nearBackground1 = game.addChild(new NearBackground()); nearBackground1.x = 0; nearBackground1.y = 0; var nearBackground2 = game.addChild(new NearBackground()); nearBackground2.x = 2048; nearBackground2.y = 0; // Initialize the far background layer var farBackground1 = game.addChild(new FarBackground()); farBackground1.x = 0; farBackground1.y = 0; var farBackground2 = game.addChild(new FarBackground()); farBackground2.x = 2048; farBackground2.y = 0; // Initialize player var player = game.addChild(new Player()); player.x = 2048 / 4; // Position player closer to the left side of the screen player.y = 2732 / 2; // Initialize enemies var enemies = []; var enemySpawnInterval = 100; var enemySpawnCounter = 0; // Create a new Text2 object to display the score var scoreText = new Text2('0', { size: 100, fill: 0xFFFFFF }); // Add the score text to the game GUI at the top right of the screen LK.gui.topRight.addChild(scoreText); scoreText.x = -150; scoreText.y = 0; // Move score text to the top layer LK.gui.topRight.setChildIndex(scoreText, LK.gui.topRight.children.length - 1); // Handle game updates game.update = function () { // Increase speed as time progresses var speedIncrease = Math.floor(LK.ticks / 1000) * 2.5; // Increase the speed increase rate by 50% nearBackground1.speed = (1 + speedIncrease) * 0.5; // Decrease speed for nearBackground for parallax effect nearBackground2.speed = (1 + speedIncrease) * 0.5; // Decrease speed for nearBackground for parallax effect farBackground1.speed = (1 + speedIncrease) * 1.5; // Increase speed for farBackground for parallax effect farBackground2.speed = (1 + speedIncrease) * 1.5; // Increase speed for farBackground for parallax effect player.speed = 5 + speedIncrease; ground1.speed = 5 + speedIncrease; ground2.speed = 5 + speedIncrease; nearBackground1.update(); nearBackground2.update(); farBackground1.update(); farBackground2.update(); player.update(); ground1.update(); ground2.update(); game.addChild(ground1); game.addChild(ground2); // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { var enemy = new Enemy(); enemy.x = 2100; // Ensure enemy spawns from off screen enemy.y = 2732 / 2; enemy.speed = 5 + speedIncrease; // Increase enemy speed enemies.push(enemy); game.addChild(enemy); // If score is 5 or more, spawn another row of enemies in the air if (LK.getScore() >= 5) { var airEnemy = new Enemy(); airEnemy.x = 2100 + Math.random() * 100; // Ensure air enemy spawns from off screen airEnemy.y = Math.random() * (2732 / 2 - 100) + 100; // Randomize air enemy position to avoid matching ground enemies airEnemy.speed = 5 + speedIncrease; // Increase enemy speed enemies.push(airEnemy); game.addChild(airEnemy); } // Randomize the spawn interval for the next enemy enemySpawnInterval = Math.floor(Math.random() * 150) + 50; enemySpawnCounter = 0; } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { // Spawn explosion effect at the player's position var explosion = LK.getAsset('explosion', { // Assuming 'explosion' is a predefined asset x: player.x, y: player.y, anchorX: 0.5, anchorY: 0.5 }); game.addChild(explosion); // Wait 1 second before showing the game over screen LK.setTimeout(function () { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); }, 1000); } else if (player.x > enemies[j].x && !enemies[j].passed) { enemies[j].passed = true; LK.setScore(LK.getScore() + 1); scoreText.setText(LK.getScore()); // Move player further to the right as they score more points player.x = Math.min(2048 * 3.0, 2048 / 4 + LK.getScore() * (2048 * 3.0 - 2048 / 4) / 100); // Move player all the way to the right of the screen once they have gotten 100 points } } }; // Handle player jump game.down = function (x, y, obj) { player.jump(); player.speed += 0.5; // Increase player speed for every successful jump };
===================================================================
--- original.js
+++ change.js
@@ -6,15 +6,15 @@
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5,
- width: 75,
- height: 75
+ width: 150,
+ height: 150
});
self.speed = 5;
self.update = function () {
self.x -= self.speed;
- if (self.x < -50) {
+ if (self.x < -10) {
self.destroy();
}
};
});
@@ -206,10 +206,22 @@
// Update enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].update();
if (player.intersects(enemies[j])) {
- LK.effects.flashScreen(0xff0000, 1000);
- LK.showGameOver();
+ // Spawn explosion effect at the player's position
+ var explosion = LK.getAsset('explosion', {
+ // Assuming 'explosion' is a predefined asset
+ x: player.x,
+ y: player.y,
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ game.addChild(explosion);
+ // Wait 1 second before showing the game over screen
+ LK.setTimeout(function () {
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ }, 1000);
} else if (player.x > enemies[j].x && !enemies[j].passed) {
enemies[j].passed = true;
LK.setScore(LK.getScore() + 1);
scoreText.setText(LK.getScore());
Single 2D Mario Character. In-Game asset. 2d. Blank background.
Mushroom kingdom style mountains. Transparent. Cartoony. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Distant clouds and mountains. Cartoony. Mario style. Blank background. High contrast. No shadows
Side on. Dirt with grass. Full width. Super mario. Blank background. High contrast. No shadows
Big explosion.. High contrast. No shadows
Sci Fi bird enemy. Side on 2D. In-Game asset. High contrast. No shadows