/****
* Classes
****/
// PuzzleBoard class to represent the puzzle board
var PuzzleBoard = Container.expand(function () {
var self = Container.call(this);
var boardGraphics = self.attachAsset('puzzleBoard', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Logic for updating the puzzle board, if needed
};
});
//<Assets used in the game will automatically appear here>
// PuzzlePiece class to represent each piece of the puzzle
var PuzzlePiece = Container.expand(function () {
var self = Container.call(this);
var pieceGraphics = self.attachAsset('puzzlePiece', {
anchorX: 0.5,
anchorY: 0.5
});
self.update = function () {
// Logic for updating the puzzle piece, if needed
};
self.down = function (x, y, obj) {
// Logic for handling piece selection
};
self.up = function (x, y, obj) {
// Logic for handling piece placement
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
// Initialize puzzle pieces and board
var puzzlePieces = [];
var puzzleBoard = game.addChild(new PuzzleBoard());
puzzleBoard.x = 2048 / 2;
puzzleBoard.y = 2732 / 2;
// Create puzzle pieces and add them to the board
for (var i = 0; i < 9; i++) {
var piece = new PuzzlePiece();
piece.x = i % 3 * 150 + 100;
piece.y = Math.floor(i / 3) * 150 + 100;
puzzlePieces.push(piece);
puzzleBoard.addChild(piece);
}
// Handle dragging of puzzle pieces
var dragPiece = null;
game.down = function (x, y, obj) {
for (var i = 0; i < puzzlePieces.length; i++) {
if (puzzlePieces[i].intersects(obj)) {
dragPiece = puzzlePieces[i];
break;
}
}
};
game.move = function (x, y, obj) {
if (dragPiece) {
dragPiece.x = x;
dragPiece.y = y;
}
};
game.up = function (x, y, obj) {
dragPiece = null;
};
// Update game logic
game.update = function () {
// Check if puzzle is solved
var solved = true;
for (var i = 0; i < puzzlePieces.length; i++) {
if (!puzzlePieces[i].intersects(puzzleBoard)) {
solved = false;
break;
}
}
if (solved) {
LK.showGameOver();
}
};