/**** * Classes ****/ //<Assets used in the game will automatically appear here> // Class for a single puzzle piece var PuzzlePiece = Container.expand(function () { var self = Container.call(this); // Attach a smooth curve asset var pieceGraphics = self.attachAsset('smoothCurve', { anchorX: 0.5, anchorY: 0.5 }); // Method to rotate the piece self.rotate = function () { pieceGraphics.rotation += Math.PI / 2; // Rotate 90 degrees }; // Check if the piece is correctly aligned self.isAligned = function () { // Logic to determine if the piece is aligned correctly return pieceGraphics.rotation % (2 * Math.PI) === 0; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xE0F7FA // Init game with a soothing pastel blue background }); /**** * Game Code ****/ // Array to hold all puzzle pieces var puzzlePieces = []; // Function to initialize the puzzle function initPuzzle() { var numPieces = 5; // Number of pieces in the loop var centerX = 2048 / 2; var centerY = 2732 / 2; var radius = 300; // Radius of the loop for (var i = 0; i < numPieces; i++) { var angle = i / numPieces * 2 * Math.PI; var piece = new PuzzlePiece(); piece.x = centerX + radius * Math.cos(angle); piece.y = centerY + radius * Math.sin(angle); piece.rotation = angle; puzzlePieces.push(piece); game.addChild(piece); } } // Initialize the puzzle initPuzzle(); // Event listener for rotating pieces game.down = function (x, y, obj) { var localPos = game.toLocal(obj.global); puzzlePieces.forEach(function (piece) { if (piece.getBounds().contains(localPos.x, localPos.y)) { piece.rotate(); } }); }; // Update function to check if the puzzle is solved game.update = function () { var allAligned = puzzlePieces.every(function (piece) { return piece.isAligned(); }); if (allAligned) { // Flash screen green for 1 second to indicate success LK.effects.flashScreen(0x00FF00, 1000); } };
/****
* Classes
****/
//<Assets used in the game will automatically appear here>
// Class for a single puzzle piece
var PuzzlePiece = Container.expand(function () {
var self = Container.call(this);
// Attach a smooth curve asset
var pieceGraphics = self.attachAsset('smoothCurve', {
anchorX: 0.5,
anchorY: 0.5
});
// Method to rotate the piece
self.rotate = function () {
pieceGraphics.rotation += Math.PI / 2; // Rotate 90 degrees
};
// Check if the piece is correctly aligned
self.isAligned = function () {
// Logic to determine if the piece is aligned correctly
return pieceGraphics.rotation % (2 * Math.PI) === 0;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xE0F7FA // Init game with a soothing pastel blue background
});
/****
* Game Code
****/
// Array to hold all puzzle pieces
var puzzlePieces = [];
// Function to initialize the puzzle
function initPuzzle() {
var numPieces = 5; // Number of pieces in the loop
var centerX = 2048 / 2;
var centerY = 2732 / 2;
var radius = 300; // Radius of the loop
for (var i = 0; i < numPieces; i++) {
var angle = i / numPieces * 2 * Math.PI;
var piece = new PuzzlePiece();
piece.x = centerX + radius * Math.cos(angle);
piece.y = centerY + radius * Math.sin(angle);
piece.rotation = angle;
puzzlePieces.push(piece);
game.addChild(piece);
}
}
// Initialize the puzzle
initPuzzle();
// Event listener for rotating pieces
game.down = function (x, y, obj) {
var localPos = game.toLocal(obj.global);
puzzlePieces.forEach(function (piece) {
if (piece.getBounds().contains(localPos.x, localPos.y)) {
piece.rotate();
}
});
};
// Update function to check if the puzzle is solved
game.update = function () {
var allAligned = puzzlePieces.every(function (piece) {
return piece.isAligned();
});
if (allAligned) {
// Flash screen green for 1 second to indicate success
LK.effects.flashScreen(0x00FF00, 1000);
}
};