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.