User prompt
the bonusFood will appear when the score is a multiple of 150
User prompt
bonusFood will appear for every difference of 150 score and the initial value from which the difference has to be checked is 0
User prompt
If the head touches the poison then the lives will be reduced by one and then the next poison will spawn after the head collects 8 food.
User prompt
If the poison is consumed by the head then the next poison will appear only after the head collects 8 food
User prompt
poison will only be generated after the head has collected exactly 8 food
User prompt
add music for life, poison, gameover, bonusFood
User prompt
bonus food will only appear exactly when the difference between the previous score to the current score is 150. where the initial score is 150
User prompt
add a background to the game
User prompt
bonus food will only appear exactly when the difference between the previous score to the current score is 150. where the initial score is 150
User prompt
life will only appear exactly when the score is a multiple of 100
User prompt
poison will only be generated after the head has collected exactly 8 food
User prompt
fix all the sound issues
User prompt
remove background completely
User prompt
remove the background and add a new background
User prompt
fix the game over and bonus food sound
User prompt
bonus food will only appear exactly when the difference between the previous score to the current score is 150. where the initial score is 150
User prompt
life will only appear exactly when the score is a multiple of 100
User prompt
poison will only be generated after the head has collected exactly 8 food
User prompt
fix the life and poison sound
User prompt
As the score reaches 30 introduce a stick of minimum 8 square inch in the middle to increase the difficulty level
User prompt
Introduce a bonus food when the head reaches a score of 150 - if head consumes the bonus food then the score will increase by 50 - The bonus food will be on the screen for 8 seconds - the bonus food will spawn at the difference of 150 score from the previous score (initial score is 150)
User prompt
Increase the speed of the head by 25%
User prompt
have a background for the game
User prompt
Introduce a factor life - If the head consumes the life increase the lives by 1 - The life will appear if the score is a multiple of 100 - The life will be on the screen only for 10 second - Maximum lives each player can have is 8, that is after 8 lives even if the head collects one extra life the lives count will not increase beyond 8
User prompt
increase the speed of the snake by 50% of the current speed
/**** * Classes ****/ var BonusFood = Container.expand(function () { var self = Container.call(this); // Create the bonus food var bonusFood = self.attachAsset('bonusFood', { anchorX: 0.5, anchorY: 0.5 }); }); var Food = Container.expand(function () { var self = Container.call(this); // Create the food var food = self.attachAsset('food', { anchorX: 0.5, anchorY: 0.5 }); }); var Life = Container.expand(function () { var self = Container.call(this); // Create the life var life = self.attachAsset('life', { anchorX: 0.5, anchorY: 0.5 }); }); var Pause = Container.expand(function () { var self = Container.call(this); // Create the pause button var pause = self.attachAsset('pause', { anchorX: 0.5, anchorY: 0.5 }); // Event handler called when a press happens on element. self.down = function (x, y, obj) { if (!game.paused) { game.paused = true; pause.id = 'resume'; } else { game.paused = false; pause.id = 'pause'; } }; }); var Poison = Container.expand(function () { var self = Container.call(this); // Create the poison var poison = self.attachAsset('poison', { anchorX: 0.5, anchorY: 0.5 }); }); var Snake = Container.expand(function () { var self = Container.call(this); // Create the head of the snake var head = self.attachAsset('head', { anchorX: 0.5, anchorY: 0.5 }); // Initialize the snake's direction and speed self.direction = 'up'; self.speed = 5; self.moveHead = function (newDirection) { if (newDirection === 'up' && this.direction !== 'down') { this.direction = 'up'; } else if (newDirection === 'down' && this.direction !== 'up') { this.direction = 'down'; } else if (newDirection === 'left' && this.direction !== 'right') { this.direction = 'left'; } else if (newDirection === 'right' && this.direction !== 'left') { this.direction = 'right'; } }; }); /**** * Initialize Game ****/ //<Assets used in the game will automatically appear here> var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ var background = game.attachAsset('background', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2 }); // Initialize pause button var pause = game.addChild(new Pause()); // Position the pause button a little to the left from the top right corner of the game pause.x = 2048 - pause.width; pause.y = 50; // Move the pause button a little down var snake = game.addChild(new Snake()); // Position the snake at the center of the game snake.x = 2048 / 2; snake.y = 2732 / 2; // Initialize food var food = game.addChild(new Food()); // Position the food at a random location within the game food.x = Math.random() * 2048; food.y = Math.random() * 2732; // Initialize poison var bonusFood = game.addChild(new BonusFood()); // Hide the bonus food when the game starts bonusFood.x = -100; bonusFood.y = -100; var poison = game.addChild(new Poison()); // Initialize life var life = game.addChild(new Life()); // Hide the life when the game starts life.x = -100; life.y = -100; // Hide the poison when the game starts poison.x = -100; poison.y = -100; game.update = function () { if (game.paused) { return; } // Update the snake's position based on its direction and speed if (snake.direction === 'up') { snake.y -= snake.speed * 2.25; } else if (snake.direction === 'down') { snake.y += snake.speed * 2.25; } else if (snake.direction === 'left') { snake.x -= snake.speed * 2.25; } else if (snake.direction === 'right') { snake.x += snake.speed * 2.25; } // Check if the snake's head intersects with the food if (snake.intersects(food)) { // Increase the score score += 10; // Update the score text scoreTxt.setText('Score: ' + score); // Increase the food consumed count foodConsumed += 1; // Check if it's time to show the bonus food if (score - previousScore === 150) { previousScore = score; // Position the bonus food at a new random location within the game, ensuring it does not appear on the border bonusFood.x = Math.random() * (2048 - bonusFood.width) + bonusFood.width / 2; bonusFood.y = Math.random() * (2732 - bonusFood.height) + bonusFood.height / 2; // Show the bonus food for 8 seconds LK.setTimeout(function () { bonusFood.x = -100; bonusFood.y = -100; }, 8000); } // Check if it's time to show the life if (score !== 0 && score % 100 === 0) { // Position the life at a new random location within the game, ensuring it does not appear on the border life.x = Math.random() * (2048 - life.width) + life.width / 2; life.y = Math.random() * (2732 - life.height) + life.height / 2; // Show the life for 10 seconds LK.setTimeout(function () { life.x = -100; life.y = -100; }, 10000); } // Check if it's time to show the poison if (foodConsumed === 8 && !poisonGenerated) { // Position the poison at a new random location within the game, ensuring it does not appear on the border poison.x = Math.random() * (2048 - poison.width) + poison.width / 2; poison.y = Math.random() * (2732 - poison.height) + poison.height / 2; // Show the poison for 8 seconds LK.setTimeout(function () { poison.x = -100; poison.y = -100; }, 8000); poisonGenerated = true; } // Position the food at a new random location within the game, ensuring it does not appear on the border food.x = Math.random() * (2048 - food.width) + food.width / 2; food.y = Math.random() * (2732 - food.height) + food.height / 2; } // Check if the snake's head intersects with the bonus food if (snake.intersects(bonusFood)) { // Increase the score by 50 score += 50; // Update the score text scoreTxt.setText('Score: ' + score); // Hide the bonus food bonusFood.x = -100; bonusFood.y = -100; } // Check if the snake's head intersects with the life if (snake.intersects(life)) { // Increase the lives by 1, up to a maximum of 8 if (lives < 8) { lives += 1; // Update the lives text livesTxt.setText('Lives: ' + lives); // Play the life sound LK.getSound('life').play(); } // Hide the life life.x = -100; life.y = -100; } // Check if the snake's head intersects with the poison if (snake.intersects(poison)) { // Decrease the lives lives -= 1; // Update the lives text livesTxt.setText('Lives: ' + lives); // Play the poison sound LK.getSound('poison').play(); // Position the poison at a new random location within the game poison.x = Math.random() * 2048; poison.y = Math.random() * 2732; // Check if the lives have hit 0 if (lives === 0) { // Show game over LK.showGameOver(); } } // Check if the snake's head has moved out of the screen if (snake.x < 0) { snake.x = 2048; } else if (snake.x > 2048) { snake.x = 0; } else if (snake.y < 0) { snake.y = 2732; } else if (snake.y > 2732) { snake.y = 0; } }; // Initialize lives, score, food consumed and poison generated var lives = 3; var score = 0; var previousScore = 0; var foodConsumed = 0; var poisonGenerated = false; // Create lives text var livesTxt = new Text2('Lives: ' + lives, { size: 32, fill: "#ffffff" }); livesTxt.anchor.set(0, 0); LK.gui.topLeft.addChild(livesTxt); // Create score text var scoreTxt = new Text2('Score: ' + score, { size: 32, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); game.down = function (x, y, obj) { if (game.paused) { return; } // Change the snake's direction to always move in the direction of the front area of the snake head which is not connected to the snake body if (x > snake.x && snake.direction !== 'left' && snake.direction !== 'right') { snake.moveHead('right'); } else if (x < snake.x && snake.direction !== 'right' && snake.direction !== 'left') { snake.moveHead('left'); } else if (y > snake.y && snake.direction !== 'up' && snake.direction !== 'down') { snake.moveHead('down'); } else if (y < snake.y && snake.direction !== 'down' && snake.direction !== 'up') { snake.moveHead('up'); } };
===================================================================
--- original.js
+++ change.js
@@ -141,9 +141,10 @@
scoreTxt.setText('Score: ' + score);
// Increase the food consumed count
foodConsumed += 1;
// Check if it's time to show the bonus food
- if (score % 150 === 0) {
+ if (score - previousScore === 150) {
+ previousScore = score;
// Position the bonus food at a new random location within the game, ensuring it does not appear on the border
bonusFood.x = Math.random() * (2048 - bonusFood.width) + bonusFood.width / 2;
bonusFood.y = Math.random() * (2732 - bonusFood.height) + bonusFood.height / 2;
// Show the bonus food for 8 seconds
@@ -233,8 +234,9 @@
};
// Initialize lives, score, food consumed and poison generated
var lives = 3;
var score = 0;
+var previousScore = 0;
var foodConsumed = 0;
var poisonGenerated = false;
// Create lives text
var livesTxt = new Text2('Lives: ' + lives, {
Apple. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Poisonous Skull. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Pause icon. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
heart icon. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Snake Face. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Ostrich egg. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.