/****
* 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();
}
};