/****
* Classes
****/
// FallingPeanut class to represent peanuts that continuously fall
var FallingPeanut = Container.expand(function () {
var self = Container.call(this);
var peanutGraphics = self.attachAsset('Peanut1', {
anchorX: 0.5,
anchorY: 0.5
});
// Set initial speed for falling peanuts
self.speed = 3;
// Update function to move peanuts downwards
self.update = function () {
self.y += self.speed;
self.x += self.horizontalSpeed; // Move horizontally
if (self.y > 2732) {
// Reset position to top if it goes off screen
self.y = -self.height;
}
};
});
//<Assets used in the game will automatically appear here>
// Peanut class to represent each peanut on the screen
var Peanut = Container.expand(function () {
var self = Container.call(this);
var peanutGraphics = self.attachAsset('Peanut1', {
anchorX: 0.5,
anchorY: 0.5
});
// Event handler for when a peanut is tapped
self.down = function (x, y, obj) {
// Increase score with level multiplier
var currentLevel = Math.min(100, Math.floor(LK.getScore() / 100) + 1);
LK.setScore(LK.getScore() + 1 * currentLevel);
scoreTxt.setText(LK.getScore());
// Level up logic
if (LK.getScore() % 100 === 0) {
var currentLevel = Math.min(100, Math.floor(LK.getScore() / 100) + 1);
levelTxt.setText('Level: ' + currentLevel);
}
// Do not destroy the peanut to prevent disappearance
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Initialize score display
var scoreTxt = new Text2('000000', {
size: 150,
fill: "#ffffff"
});
// Add tiny text in the top left
var warningTxt = new Text2('dont click falling peanuts (:', {
size: 30,
fill: "#ffffff"
});
warningTxt.anchor.set(0, 0);
LK.gui.topLeft.addChild(warningTxt);
// Initialize level display
var levelTxt = new Text2('Level: 1', {
size: 50,
fill: "#ffffff"
});
levelTxt.anchor.set(1, 1);
LK.gui.bottomRight.addChild(levelTxt);
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Array to keep track of peanuts
var peanuts = [];
// Function to spawn a new falling peanut
function spawnFallingPeanut() {
var newPeanut = new FallingPeanut();
newPeanut.horizontalSpeed = (Math.random() - 0.5) * 2; // Random horizontal speed between -1 and 1
do {
newPeanut.x = Math.random() * 2048; // Random x position
} while (Math.abs(newPeanut.x - 2048 / 2) < 150); // Ensure no overlap with peanut1
newPeanut.y = -newPeanut.height; // Start above the screen
peanuts.push(newPeanut);
game.addChild(newPeanut);
}
// Set interval to spawn falling peanuts every second
var peanutSpawnInterval = LK.setInterval(spawnFallingPeanut, 1000);
// Update function called every tick
game.update = function () {
// Update all falling peanuts
for (var i = 0; i < peanuts.length; i++) {
peanuts[i].update();
}
};
// Function to spawn a new peanut
function spawnPeanut() {
var newPeanut = new Peanut();
newPeanut.x = 2048 / 2; // Center x position
newPeanut.y = 2732 / 2; // Center y position
game.addChild(newPeanut);
}
// Start the game by spawning the first peanut
spawnPeanut();