/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Class for the Black Hole (Player) var BlackHole = Container.expand(function () { var self = Container.call(this); var blackHoleGraphics = self.attachAsset('blackHole', { anchorX: 0.5, anchorY: 0.5 }); self.width = 120; // 6x5 size self.height = 100; self.update = function () { // Update logic for the black hole }; }); // Class for Stars var Star = Container.expand(function (color, points) { var self = Container.call(this); var starGraphics = self.attachAsset('star', { anchorX: 0.5, anchorY: 0.5, tint: color }); self.points = points; self.speed = 2; self.update = function () { self.y += self.speed; if (self.y > 2732) { self.destroy(); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ //<Assets used in the game will automatically appear here> var blackHole = game.addChild(new BlackHole()); blackHole.x = 2048 / 2; blackHole.y = 2732 - 150; var stars = []; var starColors = [{ color: 0xFFFF00, points: 12 }, // Yellow { color: 0x0000FF, points: 40 }, // Blue { color: 0x00FF00, points: 100 }, // Green { color: 0xFFA500, points: 84 }, // Orange { color: 0xFFFFFF, points: 68 }, // White { color: 0xC2B280, points: 96 }, // Sand { color: 0xA020F0, points: -23 }, // Purple { color: 0x40E0D0, points: -12 }, // Turquoise { color: 0xFF0000, points: -39 } // Red ]; function spawnStar() { var randomIndex = Math.floor(Math.random() * starColors.length); var starData = starColors[randomIndex]; var newStar = new Star(starData.color, starData.points); newStar.x = Math.random() * 2048; newStar.y = 0; stars.push(newStar); game.addChild(newStar); } game.down = function (x, y, obj) { // Start the game by spawning stars spawnStar(); }; // Create a new Text2 object for the score display var scoreTxt = new Text2('0', { size: 150, fill: 0xFFFFFF }); // Add the score text to the GUI overlay at the top center of the screen LK.gui.top.addChild(scoreTxt); game.update = function () { // Update black hole position based on touch game.move = function (x, y, obj) { blackHole.x = x; blackHole.y = y; }; // Update stars for (var i = stars.length - 1; i >= 0; i--) { var star = stars[i]; star.update(); if (blackHole.intersects(star)) { LK.setScore(LK.getScore() + star.points); // Update the score display scoreTxt.setText(LK.getScore()); star.destroy(); stars.splice(i, 1); // Check for win condition if (LK.getScore() > 89234584) { // Show win screen LK.showYouWin(); // Fade in the win screen tween(LK.getYouWinScreen(), { alpha: 1 }, { duration: 1000 }); // Add click event to restart the game LK.getYouWinScreen().down = function () { LK.restartGame(); }; } // Check for game over condition if (LK.getScore() < -57) { // Show game over screen LK.showGameOver(); // Fade in the game over screen tween(LK.getGameOverScreen(), { alpha: 1 }, { duration: 1000 }); // Add click event to restart the game LK.getGameOverScreen().down = function () { LK.restartGame(); }; } } } // Spawn a new star every 60 frames if (LK.ticks % 60 === 0) { spawnStar(); } };
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
// Class for the Black Hole (Player)
var BlackHole = Container.expand(function () {
var self = Container.call(this);
var blackHoleGraphics = self.attachAsset('blackHole', {
anchorX: 0.5,
anchorY: 0.5
});
self.width = 120; // 6x5 size
self.height = 100;
self.update = function () {
// Update logic for the black hole
};
});
// Class for Stars
var Star = Container.expand(function (color, points) {
var self = Container.call(this);
var starGraphics = self.attachAsset('star', {
anchorX: 0.5,
anchorY: 0.5,
tint: color
});
self.points = points;
self.speed = 2;
self.update = function () {
self.y += self.speed;
if (self.y > 2732) {
self.destroy();
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 // Init game with black background
});
/****
* Game Code
****/
//<Assets used in the game will automatically appear here>
var blackHole = game.addChild(new BlackHole());
blackHole.x = 2048 / 2;
blackHole.y = 2732 - 150;
var stars = [];
var starColors = [{
color: 0xFFFF00,
points: 12
},
// Yellow
{
color: 0x0000FF,
points: 40
},
// Blue
{
color: 0x00FF00,
points: 100
},
// Green
{
color: 0xFFA500,
points: 84
},
// Orange
{
color: 0xFFFFFF,
points: 68
},
// White
{
color: 0xC2B280,
points: 96
},
// Sand
{
color: 0xA020F0,
points: -23
},
// Purple
{
color: 0x40E0D0,
points: -12
},
// Turquoise
{
color: 0xFF0000,
points: -39
} // Red
];
function spawnStar() {
var randomIndex = Math.floor(Math.random() * starColors.length);
var starData = starColors[randomIndex];
var newStar = new Star(starData.color, starData.points);
newStar.x = Math.random() * 2048;
newStar.y = 0;
stars.push(newStar);
game.addChild(newStar);
}
game.down = function (x, y, obj) {
// Start the game by spawning stars
spawnStar();
};
// Create a new Text2 object for the score display
var scoreTxt = new Text2('0', {
size: 150,
fill: 0xFFFFFF
});
// Add the score text to the GUI overlay at the top center of the screen
LK.gui.top.addChild(scoreTxt);
game.update = function () {
// Update black hole position based on touch
game.move = function (x, y, obj) {
blackHole.x = x;
blackHole.y = y;
};
// Update stars
for (var i = stars.length - 1; i >= 0; i--) {
var star = stars[i];
star.update();
if (blackHole.intersects(star)) {
LK.setScore(LK.getScore() + star.points);
// Update the score display
scoreTxt.setText(LK.getScore());
star.destroy();
stars.splice(i, 1);
// Check for win condition
if (LK.getScore() > 89234584) {
// Show win screen
LK.showYouWin();
// Fade in the win screen
tween(LK.getYouWinScreen(), {
alpha: 1
}, {
duration: 1000
});
// Add click event to restart the game
LK.getYouWinScreen().down = function () {
LK.restartGame();
};
}
// Check for game over condition
if (LK.getScore() < -57) {
// Show game over screen
LK.showGameOver();
// Fade in the game over screen
tween(LK.getGameOverScreen(), {
alpha: 1
}, {
duration: 1000
});
// Add click event to restart the game
LK.getGameOverScreen().down = function () {
LK.restartGame();
};
}
}
}
// Spawn a new star every 60 frames
if (LK.ticks % 60 === 0) {
spawnStar();
}
};