User prompt
bonuseg spawns when player reaches 400 points again and again
User prompt
bonuseg spawns when player reaches 400...+400...+400
User prompt
bonuseg spawns every 400 points
User prompt
fix bonuseg
User prompt
'bonuseg' fall every 500 score points and give protection against of loss life
User prompt
Please fix the bug: 'ReferenceError: protectionTimer is not defined' in or related to this line: 'if (protectionTimer > 0) {' Line Number: 286
User prompt
remove bonusegg and protection
User prompt
rename bonus to bonusegg
User prompt
bonus gives protection against loss of life
User prompt
add bonus that fall every 500 points and give shield for 15 second
User prompt
fix rottenegg takes one life
User prompt
fix rottenegg
User prompt
add heat when lose life
Code edit (1 edits merged)
Please save this source code
User prompt
play music at the start and repeat to game over
User prompt
play music when game starts
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'y')' in or related to this line: 'if (goldenEggs[i].y > 2732) {' Line Number: 257
User prompt
repeat music to game over
User prompt
add music to the main sound theme
User prompt
wolf become red when lose life
User prompt
replace chiken some lower
User prompt
replace chicken some lower
User prompt
replace three chicken to the center
User prompt
add three chicken at background
User prompt
remove leaderboards
/**** * Classes ****/ // BonusEgg class for falling bonus eggs var BonusEgg = Container.expand(function () { var self = Container.call(this); var bonusEggGraphics = self.attachAsset('bonuseg', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 5 + 2 + Math.floor(score / 100); self.update = function () { self.y += self.speed; }; }); // Egg class for falling eggs var Egg = Container.expand(function () { var self = Container.call(this); var eggGraphics = self.attachAsset('egg', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 5 + 2 + Math.floor(score / 100); self.update = function () { self.y += self.speed; }; }); // GoldenEgg class for falling golden eggs var GoldenEgg = Container.expand(function () { var self = Container.call(this); var goldenEggGraphics = self.attachAsset('goldenegg', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 5 + 2 + Math.floor(score / 100); self.update = function () { self.y += self.speed; }; }); //<Assets used in the game will automatically appear here> // Live class for falling lives var Live = Container.expand(function () { var self = Container.call(this); var liveGraphics = self.attachAsset('live', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 5 + 2 + Math.floor(score / 100); self.update = function () { self.y += self.speed; }; }); // RottenEgg class for falling rotten eggs var RottenEgg = Container.expand(function () { var self = Container.call(this); var rottenEggGraphics = self.attachAsset('rottenEgg', { anchorX: 0.5, anchorY: 0.5 }); self.speed = Math.random() * 5 + 2; self.update = function () { self.y += self.speed; }; }); // Wolf class to control the player character var Wolf = Container.expand(function () { var self = Container.call(this); var wolfGraphics = self.attachAsset('wolf', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { // Update the wolf's y position based on the gravity this.y += this.gravity; // Apply gravity this.gravity += 1; // Make sure the wolf doesn't fall through the ground if (this.y > 2732 - 200) { this.y = 2732 - 200; this.gravity = 0; this.isJumping = false; // Wolf is not jumping anymore } }; self.gravity = 0; self.isJumping = false; // Add a new property to check if the wolf is jumping self.jump = function () { // Define the jump height var jumpHeight = 40; // Make sure the wolf is not already jumping if (!this.isJumping) { // Make the wolf jump this.gravity = -jumpHeight; this.isJumping = true; // Wolf is now jumping } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2271b3 //Init game with black background }); /**** * Game Code ****/ // Play the main theme music when the game starts and repeat until game over var music = LK.getSound('music'); music.play(); music.loop = true; game.on('gameOver', function () { music.stop(); }); var background = game.attachAsset('background', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2 }); // Add three chickens at the background var chicken1 = game.attachAsset('chicken', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2 + 300 }); // Initialize game variables var wolf = game.addChild(new Wolf()); wolf.x = 2048 / 2; wolf.y = 2732 - 200; var eggs = []; var rottenEggs = []; var goldenEggs = []; var livesArray = []; var score = 0; var lastBonusScore = 0; var lives = 3; var bonusEggs = []; var protectionTimer = 0; // Display score var scoreTxt = new Text2('Score: 0', { size: 100, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Display lives var livesTxt = new Text2('Lives: ' + lives, { size: 100, fill: "#ffffff" }); livesTxt.anchor.set(0.5, 0); livesTxt.y = 100; // Move the life counter some down LK.gui.top.addChild(livesTxt); // Add a pause button var pauseButton = new Text2('Pause', { size: 100, fill: "#ffffff" }); pauseButton.anchor.set(0.5, 0); pauseButton.x = 2048 - 200; // Position the pause button at the top right corner LK.gui.top.addChild(pauseButton); // Handle pause button click pauseButton.down = function (x, y, obj) { LK.pauseGame(); }; // Handle wolf movement game.move = function (x, y, obj) { if (x > wolf.x) { wolf.scaleX = 1; // face right } else if (x < wolf.x) { wolf.scaleX = -1; // face left } wolf.x = x; }; game.down = function (x, y, obj) { wolf.jump(); }; // Update game state game.update = function () { // Spawn eggs and rotten eggs if (LK.ticks % 60 == 0) { var newEgg = new Egg(); newEgg.x = Math.random() * 2048; newEgg.y = -50; eggs.push(newEgg); game.addChild(newEgg); } if (LK.ticks % (360 - Math.floor(score / 10)) == 0) { var newRottenEgg = new RottenEgg(); newRottenEgg.x = Math.random() * 2048; newRottenEgg.y = -50; rottenEggs.push(newRottenEgg); game.addChild(newRottenEgg); } if (score % 15 == 0 && score > 0) { var newGoldenEgg = new GoldenEgg(); newGoldenEgg.x = Math.random() * 2048; newGoldenEgg.y = -50; goldenEggs.push(newGoldenEgg); game.addChild(newGoldenEgg); } if (score != 0 && score % 400 == 0 && score != lastBonusScore) { var newBonusEgg = new BonusEgg(); newBonusEgg.x = Math.random() * 2048; newBonusEgg.y = -50; bonusEggs.push(newBonusEgg); game.addChild(newBonusEgg); lastBonusScore = score; } if (score != 0 && score % 100 == 0 && livesArray.length < 3) { var newLive = new Live(); newLive.x = Math.random() * 2048; newLive.y = -50; livesArray.push(newLive); game.addChild(newLive); } // Update eggs and check for collisions for (var i = eggs.length - 1; i >= 0; i--) { eggs[i].update(); if (eggs[i].intersects(wolf)) { score += 1; scoreTxt.setText('Score: ' + score); eggs[i].destroy(); eggs.splice(i, 1); } else if (eggs[i].y > 2732) { lives -= 1; livesTxt.setText('Lives: ' + lives); LK.effects.flashObject(wolf, 0xff0000, 1000); LK.getSound('heat').play(); eggs[i].destroy(); eggs.splice(i, 1); if (lives <= 0) { LK.effects.flashScreen(0xff0000, 1000); console.log("Game Over! Your score was: " + score); music.stop(); LK.showGameOver(); } } } // Update rotten eggs and check for collisions for (var i = rottenEggs.length - 1; i >= 0; i--) { rottenEggs[i].update(); if (rottenEggs[i].intersects(wolf)) { if (protectionTimer <= 0) { lives -= 1; livesTxt.setText('Lives: ' + lives); LK.effects.flashObject(wolf, 0xff0000, 1000); LK.getSound('heat').play(); rottenEggs[i].destroy(); rottenEggs.splice(i, 1); if (lives <= 0) { LK.effects.flashScreen(0xff0000, 1000); console.log("Game Over! Your score was: " + score); music.stop(); LK.showGameOver(); } } else { rottenEggs[i].destroy(); rottenEggs.splice(i, 1); } } if (rottenEggs[i] && rottenEggs[i].y > 2732) { rottenEggs[i].destroy(); rottenEggs.splice(i, 1); } } for (var i = goldenEggs.length - 1; i >= 0; i--) { goldenEggs[i].update(); if (goldenEggs[i].intersects(wolf)) { score += 2; // Double points for golden egg scoreTxt.setText('Score: ' + score); goldenEggs[i].destroy(); goldenEggs.splice(i, 1); } if (goldenEggs[i] && goldenEggs[i].y > 2732) { goldenEggs[i].destroy(); goldenEggs.splice(i, 1); } } for (var i = bonusEggs.length - 1; i >= 0; i--) { bonusEggs[i].update(); if (bonusEggs[i].intersects(wolf)) { protectionTimer = 900; // 15 seconds of protection at 60 FPS bonusEggs[i].destroy(); bonusEggs.splice(i, 1); } else if (bonusEggs[i].y > 2732) { bonusEggs[i].destroy(); bonusEggs.splice(i, 1); } } for (var i = livesArray.length - 1; i >= 0; i--) { livesArray[i].update(); if (livesArray[i].intersects(wolf)) { lives += 1; livesTxt.setText('Lives: ' + lives); livesArray[i].destroy(); livesArray.splice(i, 1); } if (livesArray[i] && livesArray[i].y > 2732) { livesArray[i].destroy(); livesArray.splice(i, 1); } } if (protectionTimer > 0) { protectionTimer--; wolf.alpha = 0.5; // Indicate protection with transparency } else { wolf.alpha = 1; // Reset wolf transparency } };
===================================================================
--- original.js
+++ change.js
@@ -133,8 +133,9 @@
var rottenEggs = [];
var goldenEggs = [];
var livesArray = [];
var score = 0;
+var lastBonusScore = 0;
var lives = 3;
var bonusEggs = [];
var protectionTimer = 0;
// Display score
@@ -199,14 +200,15 @@
newGoldenEgg.y = -50;
goldenEggs.push(newGoldenEgg);
game.addChild(newGoldenEgg);
}
- if (score != 0 && score % 400 == 0) {
+ if (score != 0 && score % 400 == 0 && score != lastBonusScore) {
var newBonusEgg = new BonusEgg();
newBonusEgg.x = Math.random() * 2048;
newBonusEgg.y = -50;
bonusEggs.push(newBonusEgg);
game.addChild(newBonusEgg);
+ lastBonusScore = score;
}
if (score != 0 && score % 100 == 0 && livesArray.length < 3) {
var newLive = new Live();
newLive.x = Math.random() * 2048;
Cartoon wolf. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Cartoon egg. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Cartoon rotten egg. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cartoon golden egg. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cartoon egg with big heart. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cartoon scared chicken. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cartoon bonus egg. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.