/****
* Classes
****/
// Class for the overlay square in the grid
var OverlaySquare = Container.expand(function (underlyingSquare) {
var self = Container.call(this);
self.underlyingSquare = underlyingSquare;
var squareGraphics = self.attachAsset('overgraySquare', {
anchorX: 0.5,
anchorY: 0.5
});
self.down = function (x, y, obj) {
self.destroy();
if (self.underlyingSquare) {
if (self.underlyingSquare.isRed) {
hearts[hearts.length - 1].destroy();
hearts.pop();
if (hearts.length === 0) {
// Add 5 points for every extra heart that is left when the game ends
LK.setScore(LK.getScore() + hearts.length * 5);
scoreTxt.setText(LK.getScore());
LK.showGameOver();
}
} else if (self.underlyingSquare.isGreen) {
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
if (LK.getScore() == 3) {
// Add 5 points for every extra heart that is left when the game ends
LK.setScore(LK.getScore() + hearts.length * 5);
scoreTxt.setText(LK.getScore());
LK.showGameOver();
}
}
}
};
});
// Assets will be automatically created and loaded by the LK engine based on their usage in the code.
// Class for a single square in the grid
var Square = Container.expand(function () {
var self = Container.call(this);
self.isGreen = false;
self.isRed = false;
// Attach a gray square asset by default
var squareGraphics = self.attachAsset('graySquare', {
anchorX: 0.5,
anchorY: 0.5
});
// Method to set the square as green
self.setGreen = function () {
self.isGreen = true;
squareGraphics = self.attachAsset('greenSquare', {
anchorX: 0.5,
anchorY: 0.5
});
};
// Method to set the square as red
self.setRed = function () {
self.isRed = true;
squareGraphics = self.attachAsset('redSquare', {
anchorX: 0.5,
anchorY: 0.5
});
};
// Event handler for when the square is clicked
self.down = function (x, y, obj) {};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x333333 // Init game with dark gray background
});
/****
* Game Code
****/
var grid = [];
var foundGreenSquares = 0;
var foundRedSquares = 0;
var redSquaresRevealed = 0;
// Initialize the grid
function initializeGrid() {
var positions = [];
for (var i = 0; i < 25; i++) {
positions.push(i);
}
// Shuffle positions
positions.sort(function () {
return Math.random() - 0.5;
});
// Create squares
for (var i = 0; i < 25; i++) {
var square = new Square();
var x = i % 5 * 200 + (2048 - 5 * 200) / 2 + 100; // Move the grid 100 pixels to the right
var y = Math.floor(i / 5) * 200 + (2732 - 5 * 200) / 2; // Centering the grid vertically
square.x = x;
square.y = y;
grid.push(square);
game.addChild(square);
// Create overlay square
var overlaySquare = new OverlaySquare(square);
overlaySquare.x = x;
overlaySquare.y = y;
game.addChild(overlaySquare);
}
// Set 5 green squares
for (var i = 0; i < 5; i++) {
grid[positions[i]].setGreen();
}
// Set 10 red squares
for (var i = 5; i < 15; i++) {
grid[positions[i]].setRed();
}
}
// Initialize the game grid
initializeGrid();
var hearts = [];
for (var i = 0; i < 3; i++) {
var heart = game.addChild(LK.getAsset('heart', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 - (100 + i * 120),
y: 100
}));
hearts.push(heart);
}
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt); /****
* Classes
****/
// Class for the overlay square in the grid
var OverlaySquare = Container.expand(function (underlyingSquare) {
var self = Container.call(this);
self.underlyingSquare = underlyingSquare;
var squareGraphics = self.attachAsset('overgraySquare', {
anchorX: 0.5,
anchorY: 0.5
});
self.down = function (x, y, obj) {
self.destroy();
if (self.underlyingSquare) {
if (self.underlyingSquare.isRed) {
hearts[hearts.length - 1].destroy();
hearts.pop();
if (hearts.length === 0) {
// Add 5 points for every extra heart that is left when the game ends
LK.setScore(LK.getScore() + hearts.length * 5);
scoreTxt.setText(LK.getScore());
LK.showGameOver();
}
} else if (self.underlyingSquare.isGreen) {
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
if (LK.getScore() == 3) {
// Add 5 points for every extra heart that is left when the game ends
LK.setScore(LK.getScore() + hearts.length * 5);
scoreTxt.setText(LK.getScore());
LK.showGameOver();
}
}
}
};
});
// Assets will be automatically created and loaded by the LK engine based on their usage in the code.
// Class for a single square in the grid
var Square = Container.expand(function () {
var self = Container.call(this);
self.isGreen = false;
self.isRed = false;
// Attach a gray square asset by default
var squareGraphics = self.attachAsset('graySquare', {
anchorX: 0.5,
anchorY: 0.5
});
// Method to set the square as green
self.setGreen = function () {
self.isGreen = true;
squareGraphics = self.attachAsset('greenSquare', {
anchorX: 0.5,
anchorY: 0.5
});
};
// Method to set the square as red
self.setRed = function () {
self.isRed = true;
squareGraphics = self.attachAsset('redSquare', {
anchorX: 0.5,
anchorY: 0.5
});
};
// Event handler for when the square is clicked
self.down = function (x, y, obj) {};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x333333 // Init game with dark gray background
});
/****
* Game Code
****/
var grid = [];
var foundGreenSquares = 0;
var foundRedSquares = 0;
var redSquaresRevealed = 0;
// Initialize the grid
function initializeGrid() {
var positions = [];
for (var i = 0; i < 25; i++) {
positions.push(i);
}
// Shuffle positions
positions.sort(function () {
return Math.random() - 0.5;
});
// Create squares
for (var i = 0; i < 25; i++) {
var square = new Square();
var x = i % 5 * 200 + (2048 - 5 * 200) / 2 + 100; // Move the grid 100 pixels to the right
var y = Math.floor(i / 5) * 200 + (2732 - 5 * 200) / 2; // Centering the grid vertically
square.x = x;
square.y = y;
grid.push(square);
game.addChild(square);
// Create overlay square
var overlaySquare = new OverlaySquare(square);
overlaySquare.x = x;
overlaySquare.y = y;
game.addChild(overlaySquare);
}
// Set 5 green squares
for (var i = 0; i < 5; i++) {
grid[positions[i]].setGreen();
}
// Set 10 red squares
for (var i = 5; i < 15; i++) {
grid[positions[i]].setRed();
}
}
// Initialize the game grid
initializeGrid();
var hearts = [];
for (var i = 0; i < 3; i++) {
var heart = game.addChild(LK.getAsset('heart', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 - (100 + i * 120),
y: 100
}));
hearts.push(heart);
}
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);