Code edit (1 edits merged)
Please save this source code
Code edit (3 edits merged)
Please save this source code
User prompt
Migrate to the latest version of LK
Code edit (6 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: LK.showGameWon is not a function' in or related to this line: 'LK.showGameWon();' Line Number: 166
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'reload')' in or related to this line: 'location.reload();' Line Number: 164
Code edit (8 edits merged)
Please save this source code
User prompt
when game is won, show a play again button.
Code edit (1 edits merged)
Please save this source code
/**** * Classes ****/ var Button = Container.expand(function () { var self = Container.call(this); self.interactive = true; self.buttonMode = true; // Add a background graphic var background = self.attachAsset('buttonBackground', { anchorX: 0.5, anchorY: 0.5 }); // Add a textfield self.textfield = new Text2('1', { size: 300, fill: '#111111', align: 'center', anchorX: 0.5, anchorY: 0.5 }); self.addChild(self.textfield); self.textfield.x = -80; self.textfield.y = -180; self.val = 0; self.on('down', function () { //console.log('Button pressed:', this.val); if (this.val == count) { console.log('correct'); if (count < 10) { count++; randomNumbers(); } else { // Won. button1.destroy(); button2.destroy(); button3.destroy(); instructionsText.destroy(); var wonText = new Text2('Good job!\nYou counted to 10\nand averted the crisis.\nPeace and Love!', { size: 100, fill: "#000077", align: 'center', anchorX: 0.5, anchorY: 0.0 }); wonText.x = 520; wonText.y = 100; game.addChild(wonText); var winGraphics = game.addChildAt(new WinGraphics(), 1); var p1Graphics = game.addChildAt(new People1Graphics(), 2); var p2Graphics = game.addChildAt(new People2Graphics(), 3); var p3Graphics = game.addChildAt(new People3Graphics(), 4); var p4Graphics = game.addChildAt(new People4Graphics(), 5); var p5Graphics = game.addChildAt(new People5Graphics(), 6); var playAgainButton = game.addChild(new PlayAgainButton()); playAgainButton.x = 2048 / 2; playAgainButton.y = 2732 / 2 + 200; } } else { console.log('incorrect'); var particleSystem = game.addChild(new ParticleSystem()); particleSystem.start(); button1.destroy(); button2.destroy(); button3.destroy(); instructionsText.destroy(); background1.destroy(); gameOver = true; } }); }); var ParticleSystem = Container.expand(function () { var self = Container.call(this); self.start = function () { for (var i = 0; i < 100; i++) { var particle = self.attachAsset('fireParticle', { anchorX: 0.5, anchorY: 0.5, x: Math.random() * 2048, y: Math.random() * 2732 }); particle.alpha = 0.7; particle.scale.x = particle.scale.y = Math.random() * 2; particles.push(particle); } }; }); var People1Graphics = Container.expand(function () { var self = Container.call(this); var wonBackground = self.attachAsset('people1', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2 }); }); var People2Graphics = Container.expand(function () { var self = Container.call(this); var wonBackground = self.attachAsset('people2', { anchorX: 0.5, anchorY: 0.5, x: 700, y: 2732 / 2 + 300 }); }); var People3Graphics = Container.expand(function () { var self = Container.call(this); var wonBackground = self.attachAsset('people3', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 + 150, y: 2732 / 2 + 400 }); }); var People4Graphics = Container.expand(function () { var self = Container.call(this); var wonBackground = self.attachAsset('people4', { anchorX: 0.5, anchorY: 0.5, x: 600, y: 2732 / 2 - 200 }); }); var People5Graphics = Container.expand(function () { var self = Container.call(this); var wonBackground = self.attachAsset('people5', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 + 150, y: 2732 / 2 - 250 }); }); var PlayAgainButton = Container.expand(function () { var self = Container.call(this); self.interactive = true; self.buttonMode = true; var background = self.attachAsset('button2Background', { anchorX: 0.5, anchorY: 0.5 }); self.textfield = new Text2('Play Again', { size: 60, fill: '#111111', align: 'center', anchorX: 0.5, anchorY: 0.5 }); self.addChild(self.textfield); self.on('down', function () { if (typeof location !== 'undefined' && typeof location.reload === 'function') { location.reload(); } }); }); var WinGraphics = Container.expand(function () { var self = Container.call(this); var wonBackground = self.attachAsset('wonBackground', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2 }); }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x001100 // Init game with black background }); /**** * Game Code ****/ // Initialize game elements // Initialize a simple circle asset for counting visualization // Initialize a text asset for displaying the count number var particles = []; var background1 = game.addChild(LK.getAsset('background', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, alpha: 0.8 })); var instructionsText = new Text2('Tensions run high at the border\nCount to 10', { size: 100, fill: "#ffffff", align: 'center', anchorX: 0.5, anchorY: 0.0 }); instructionsText.x = 400; instructionsText.y = 100; game.addChild(instructionsText); // Initialize count variable var count = 1; var gameOver = false; // Function to update the count and display it // Add event listener to increment count on touch var button1 = game.addChild(new Button()); button1.x = 2048 / 2 - 500; button1.y = 2732 / 2; var button2 = game.addChild(new Button()); button2.x = 2048 / 2; button2.y = 2732 / 2; var button3 = game.addChild(new Button()); button3.x = 2048 / 2 + 500; button3.y = 2732 / 2; var buttonArr = [button1, button2, button3]; var randomNumbers = function randomNumbers() { for (var i in buttonArr) { var v = Math.ceil(Math.random() * 10); if (v === 10) { buttonArr[i].textfield.x = -180; } else { buttonArr[i].textfield.x = -80; } buttonArr[i].textfield.setText("" + v); buttonArr[i].val = v; } var right = buttonArr[Math.floor(Math.random() * 3)]; right.textfield.setText("" + count); right.val = count; if (count === 10) { right.textfield.x = -180; } else { right.textfield.x = -80; } }; randomNumbers(); // Main game tick function LK.on('tick', function () { // Game logic that needs to be executed every frame can be added here // For this simple counting game, there's no need to update anything per tick if (particles.length > 0) { for (var i = particles.length - 1; i >= 0; i--) { var factor = Math.random() * 0.25; particles[i].scale.x += factor; particles[i].scale.y += factor; if (particles[i].scale.x > 10) { particles[i].destroy(); particles.splice(i, 1); console.log('particles.length: ' + particles.length); } } } else { if (gameOver) { LK.showGameOver(); } } });
===================================================================
--- original.js
+++ change.js
@@ -137,17 +137,19 @@
anchorX: 0.5,
anchorY: 0.5
});
self.textfield = new Text2('Play Again', {
- size: 100,
+ size: 60,
fill: '#111111',
align: 'center',
anchorX: 0.5,
anchorY: 0.5
});
self.addChild(self.textfield);
self.on('down', function () {
- location.reload();
+ if (typeof location !== 'undefined' && typeof location.reload === 'function') {
+ location.reload();
+ }
});
});
var WinGraphics = Container.expand(function () {
var self = Container.call(this);
A map of a fictional world, divided in the middle by a red dashed line, which is a country border. On each side of the border, a modern army is marched up and pointing weapons at the other side. Style should be detailed illustration.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast.
A blank scrabble tile, direct top down view.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A beautiful meadow in summer, seen in perspective from a low altitude plane.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A smiling family waving.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A smiling family waving.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A smiling family waving.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A smiling family waving.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A fiery explosion. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A rectangular green button. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.