User prompt
You left number 1
User prompt
Set counter to zero if no more block
User prompt
Set counter to zero if the last block falls
User prompt
Set counter to zero if the last block is fallen
User prompt
And after that set the counter to zero
User prompt
No load more towerblock if counter reach 1
User prompt
Change 20 to 19
User prompt
Avoid bouncing
User prompt
No load more towerblock if counter reach zero.
User prompt
I didn't say you that Reset the counter to 20 when it reaches zero!!!!!!!!
User prompt
Add counter to the top left corner of the map. Ensure that if player click the counter is counting one by one back from 20 to zero.
User prompt
Fix it
User prompt
Repair it
User prompt
Fix counter bug
User prompt
Display the counter
User prompt
Add towerblock counter to the top left corner of the map. Ensure that counter is counting back from 20 one by one if player click.
User prompt
I written 20 not 19!!!
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'setText')' in or related to this line: 'counterTxt.setText(towerBlockCounter.toString());' Line Number: 81
User prompt
Ensure that the counter counts backwards from 20 one at a time and counts each loaded item one at a time
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'setText')' in or related to this line: 'counterTxt.setText(towerBlockCounter.toString());' Line Number: 81
User prompt
Add towerblock counter to the top left corner of the map. Ensure that player has 20 towerblock and no more load
User prompt
And remove from map if it fallen
User prompt
Ensure that an element that fell from the top of another falls breaks into pieces and disappears from the track
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'if (Math.abs(towerBlocks[i].x - towerBlocks[j].x) > towerBlocks[i].width * 0.1) {' Line Number: 127
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'if (Math.abs(towerBlocks[i].x - towerBlocks[j].x) > towerBlocks[i].width * 0.1) {' Line Number: 127
/**** * Classes ****/ //<Assets used in the game will automatically appear here> // Class for TowerBlock var TowerBlock = Container.expand(function () { var self = Container.call(this); var blockGraphics = self.attachAsset('towerBlock', { anchorX: 0.5, anchorY: 0.5 }); self.swayDirection = 1; self.swaySpeed = 1; self.update = function () { self.x += self.swaySpeed * self.swayDirection; if (self.x > 2048 - blockGraphics.width / 2 || self.x < blockGraphics.width / 2) { self.swayDirection *= -1; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Light blue background }); /**** * Game Code ****/ var sky = game.addChild(LK.getAsset('sky', { anchorX: 0, anchorY: 0, x: 0, y: 0 })); var grass = game.addChild(LK.getAsset('grass', { anchorX: 0, anchorY: 1, x: 0, y: 2732 })); // Initialize variables var towerBlocks = []; var baseY = 2500; // Base row position var currentBlock = null; var counter = 20; // Initialize counter var counterTxt = new Text2(counter.toString(), { size: 150, fill: 0xFFFFFF }); // Create counter text counterTxt.anchor.set(0, 0); // Set anchor to top left LK.gui.topLeft.addChild(counterTxt); // Add counter text to top left corner of the map // Function to drop the current block function dropBlock() { if (currentBlock) { currentBlock.swaySpeed = 0; // Stop swaying towerBlocks.push(currentBlock); currentBlock = null; } } // Create a new block at the top of the screen function createNewBlock() { // Create a new block at the top of the screen function createNewBlock() { currentBlock = new TowerBlock(); currentBlock.x = 2048 / 2; currentBlock.y = 100; game.addChild(currentBlock); } currentBlock = new TowerBlock(); currentBlock.x = 2048 / 2; currentBlock.y = 100; game.addChild(currentBlock); } // Handle screen tap to drop the block game.down = function (x, y, obj) { dropBlock(); if (counter > 1) { // Check if counter is greater than one createNewBlock(); counter--; // Decrease counter by one counterTxt.setText(counter.toString()); // Update counter text } }; // Initialize the first block createNewBlock(); // Update function for the game game.update = function () { if (currentBlock) { currentBlock.update(); } if (counter === 0) { // Check if counter has reached zero counterTxt.setText(counter.toString()); // Update counter text } // Update positions of all blocks for (var i = 0; i < towerBlocks.length; i++) { towerBlocks[i].y += 5; // Move blocks down // Check if the block has collided with the grass if (towerBlocks[i].intersects(grass)) { towerBlocks[i].y = grass.y - towerBlocks[i].height / 2; // Position the block on top of the grass towerBlocks[i].swaySpeed = 0; // Stop the block from moving } // Check if the block has collided with another block for (var j = 0; j < towerBlocks.length; j++) { if (i != j && towerBlocks[i].intersects(towerBlocks[j])) { towerBlocks[i].y = towerBlocks[j].y - towerBlocks[i].height; // Position the block on top of the other block towerBlocks[i].swaySpeed = 0; // Stop the block from moving // Initialize lastX for tracking changes on X if (towerBlocks[i].lastX === undefined) { towerBlocks[i].lastX = towerBlocks[i].x; } // Check if at least 90% of the tower block fits on the underlying one if (towerBlocks[j] && Math.abs(towerBlocks[i].x - towerBlocks[j].x) > towerBlocks[i].width * 0.1) { // If not, slide it off animatedly towerBlocks[i].x += towerBlocks[i].x < towerBlocks[j].x ? -5 : 5; // Check if the block has fallen off completely if (towerBlocks[i].lastX <= 0 && towerBlocks[i].x > 0) { // Create an explosion effect var explosion = LK.effects.explosion(towerBlocks[i].x, towerBlocks[i].y); game.addChild(explosion); towerBlocks[i].destroy(); // Remove the block from the game towerBlocks.splice(i, 1); // Remove the block from the array i--; // Adjust the index after removal } else if (towerBlocks[i].y > 2732) { // Check if the block has fallen off the map towerBlocks[i].destroy(); // Remove the block from the game towerBlocks.splice(i, 1); // Remove the block from the array i--; // Adjust the index after removal if (towerBlocks.length === 0) { // Check if the last block has fallen counter = 0; // Set counter to zero counterTxt.setText(counter.toString()); // Update counter text } } } // Update last known states towerBlocks[i].lastX = towerBlocks[i].x; break; // Prevent block from bouncing by breaking the loop once a collision is detected } } } // Create a windstorm effect every 5 seconds if (LK.ticks % 300 == 0) { for (var i = 0; i < towerBlocks.length; i++) { // If the block does not fit at least 90% of the way underneath, move it off the map if (towerBlocks[j] && Math.abs(towerBlocks[i].x - towerBlocks[j].x) > towerBlocks[i].width * 0.1) { towerBlocks[i].x += towerBlocks[i].x < towerBlocks[j].x ? -5 : 5; } } } };
===================================================================
--- original.js
+++ change.js
@@ -90,11 +90,10 @@
game.update = function () {
if (currentBlock) {
currentBlock.update();
}
- if (counter === 1) {
- // Check if counter has reached one
- counter = 0; // Set counter to zero
+ if (counter === 0) {
+ // Check if counter has reached zero
counterTxt.setText(counter.toString()); // Update counter text
}
// Update positions of all blocks
for (var i = 0; i < towerBlocks.length; i++) {
@@ -129,8 +128,13 @@
// Check if the block has fallen off the map
towerBlocks[i].destroy(); // Remove the block from the game
towerBlocks.splice(i, 1); // Remove the block from the array
i--; // Adjust the index after removal
+ if (towerBlocks.length === 0) {
+ // Check if the last block has fallen
+ counter = 0; // Set counter to zero
+ counterTxt.setText(counter.toString()); // Update counter text
+ }
}
}
// Update last known states
towerBlocks[i].lastX = towerBlocks[i].x;