/**** * Classes ****/ // Flying Box Class var FlyingBox = Container.expand(function () { var self = Container.call(this); // Placeholder for the flying box graphics var boxGraphics = self.attachAsset('cat', { anchorX: 0.5, anchorY: 0.5 }); // Placeholder for box position self.x = Math.random() * 2048; self.y = Math.random() * 2732; // Placeholder for box speed self.speedX = Math.random() * 10 - 5; self.speedY = Math.random() * 10 - 5; // Method for updating the box position self.update = function () { self.x += self.speedX; self.y += self.speedY; // Bounce the box off the edges of the screen if (self.x < 0 || self.x > 2048) { self.speedX *= -1; } if (self.y < 0 || self.y > 2732) { self.speedY *= -1; } }; }); // Puzzle Board Class var PuzzleBoard = Container.expand(function () { var self = Container.call(this); // Placeholder for the puzzle board graphics var boardGraphics = self.attachAsset('puzzleBoard', { anchorX: 0.5, anchorY: 0.5 }); // Placeholder for storing puzzle pieces self.pieces = []; // Placeholder for initializing puzzle pieces self.initPieces = function () { // Initialize puzzle pieces here }; // Placeholder for checking if the puzzle is solved self.isSolved = function () { return self.pieces.every(function (piece) { return piece.isInCorrectPosition(); }); }; }); // Assets will be automatically created based on usage in the code. // Puzzle Piece Class var PuzzlePiece = Container.expand(function () { var self = Container.call(this); // Placeholder for the puzzle piece graphics var pieceGraphics = self.attachAsset('puzzlePiece', { anchorX: 0.5, anchorY: 0.5 }); // Placeholder for piece position self.correctX = 0; self.correctY = 0; // Placeholder for checking if the piece is in the correct position self.isInCorrectPosition = function () { return self.x === self.correctX && self.y === self.correctY; }; }); // Snow Particle Class var SnowParticle = Container.expand(function () { var self = Container.call(this); // Create a simple white circle for the snow particle var particleGraphics = self.attachAsset('snowParticle', { anchorX: 0.5, anchorY: 0.5 }); // Set the initial position of the snow particle to a random x and a y off the top of the screen self.x = Math.random() * 2048; self.y = -100; // Set the speed of the snow particle to a random value for a more natural look self.speedY = Math.random() * 5 + 1; // Update the position of the snow particle every frame self.update = function () { self.y += self.speedY; // If the snow particle has moved off the bottom of the screen, reset its position to the top if (self.y > 2732) { self.y = -100; self.x = Math.random() * 2048; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with black background }); /**** * Game Code ****/ // Initialize flying box var flyingBox = game.addChild(new FlyingBox()); // Initialize snow particles var snowParticles = []; for (var i = 0; i < 100; i++) { var snowParticle = game.addChild(new SnowParticle()); snowParticles.push(snowParticle); } var puzzleBoard = game.addChild(new PuzzleBoard()); puzzleBoard.initPieces(); // Center the puzzle board on the screen puzzleBoard.x = 2048 / 2 - puzzleBoard.width / 2; puzzleBoard.y = 2732 / 2 - puzzleBoard.height / 2; // Placeholder for the currently dragged puzzle piece var draggedPiece = null; // Event listener for dragging puzzle pieces game.on('down', function (obj) { var pos = obj.event.getLocalPosition(game); // Check if a puzzle piece was clicked and set it as the dragged piece puzzleBoard.pieces.forEach(function (piece) { if (piece.containsPoint(pos)) { draggedPiece = piece; } }); }); game.on('move', function (obj) { if (draggedPiece) { var pos = obj.event.getLocalPosition(game); draggedPiece.x = pos.x; draggedPiece.y = pos.y; } }); game.on('up', function (obj) { // Check if the dragged piece is in the correct position if (draggedPiece && draggedPiece.isInCorrectPosition()) { // Snap to correct position draggedPiece.x = draggedPiece.correctX; draggedPiece.y = draggedPiece.correctY; } draggedPiece = null; // Check if the puzzle is solved if (puzzleBoard.isSolved()) { LK.showGameOver(); // Show game over when the puzzle is solved } }); // Update function for game logic LK.on('tick', function () { // Update the flying box position flyingBox.update(); // Update the snow particles for (var i = 0; i < snowParticles.length; i++) { snowParticles[i].update(); } // Check if the flying box intersects with the puzzle board if (flyingBox.intersects(puzzleBoard)) { // Push the puzzle board in the direction of the flying box's movement puzzleBoard.x += flyingBox.speedX; puzzleBoard.y += flyingBox.speedY; } });
===================================================================
--- original.js
+++ change.js
@@ -65,8 +65,31 @@
self.isInCorrectPosition = function () {
return self.x === self.correctX && self.y === self.correctY;
};
});
+// Snow Particle Class
+var SnowParticle = Container.expand(function () {
+ var self = Container.call(this);
+ // Create a simple white circle for the snow particle
+ var particleGraphics = self.attachAsset('snowParticle', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Set the initial position of the snow particle to a random x and a y off the top of the screen
+ self.x = Math.random() * 2048;
+ self.y = -100;
+ // Set the speed of the snow particle to a random value for a more natural look
+ self.speedY = Math.random() * 5 + 1;
+ // Update the position of the snow particle every frame
+ self.update = function () {
+ self.y += self.speedY;
+ // If the snow particle has moved off the bottom of the screen, reset its position to the top
+ if (self.y > 2732) {
+ self.y = -100;
+ self.x = Math.random() * 2048;
+ }
+ };
+});
/****
* Initialize Game
****/
@@ -78,8 +101,14 @@
* Game Code
****/
// Initialize flying box
var flyingBox = game.addChild(new FlyingBox());
+// Initialize snow particles
+var snowParticles = [];
+for (var i = 0; i < 100; i++) {
+ var snowParticle = game.addChild(new SnowParticle());
+ snowParticles.push(snowParticle);
+}
var puzzleBoard = game.addChild(new PuzzleBoard());
puzzleBoard.initPieces();
// Center the puzzle board on the screen
puzzleBoard.x = 2048 / 2 - puzzleBoard.width / 2;
@@ -119,8 +148,12 @@
// Update function for game logic
LK.on('tick', function () {
// Update the flying box position
flyingBox.update();
+ // Update the snow particles
+ for (var i = 0; i < snowParticles.length; i++) {
+ snowParticles[i].update();
+ }
// Check if the flying box intersects with the puzzle board
if (flyingBox.intersects(puzzleBoard)) {
// Push the puzzle board in the direction of the flying box's movement
puzzleBoard.x += flyingBox.speedX;