User prompt
Variable the load of tiwerblocks vertically
User prompt
ensure the block load horizontally across the screen
User prompt
Avoid loading blocks from only the middle of the top of the screen. Constantly move horizontally, this will make it more varied
User prompt
No you didn't do it well
User prompt
This makes it too easy to drop blocks from the same place in the middle. The way to make the game harder is not to jump back to the center before loading each block, but to keep moving horizontally and load blocks from there.
User prompt
Add functionality to break and remove a block that falls off another block
User prompt
Decrease the size of the text and number to the half
User prompt
Decrease the size of the text and number to the fifth
User prompt
Add text before counter number: 'Remaining Building Blocks:'
User prompt
Decrease the size of text and number to the quarter
User prompt
Decrease the size of text and number to the fifth
User prompt
Add text before counter number: 'Building blocks:'
User prompt
Fix it
User prompt
Set counter to zero after 1
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.
/****
* 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('Remaining Building Blocks: ' + 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 > 0) {
// Check if counter is greater than zero
createNewBlock();
counter--; // Decrease counter by one
counterTxt.setText('Remaining Building Blocks: ' + counter.toString()); // Update counter text
}
};
// Initialize the first block
createNewBlock();
// Update function for the game
game.update = function () {
if (currentBlock) {
currentBlock.update();
}
// 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
}
}
// 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
@@ -45,10 +45,10 @@
var towerBlocks = [];
var baseY = 2500; // Base row position
var currentBlock = null;
var counter = 20; // Initialize counter
-var counterTxt = new Text2('Building blocks: ' + counter.toString(), {
- size: 18.75,
+var counterTxt = new Text2('Remaining Building Blocks: ' + 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
@@ -80,9 +80,9 @@
if (counter > 0) {
// Check if counter is greater than zero
createNewBlock();
counter--; // Decrease counter by one
- counterTxt.setText('Building blocks: ' + counter.toString()); // Update counter text
+ counterTxt.setText('Remaining Building Blocks: ' + counter.toString()); // Update counter text
}
};
// Initialize the first block
createNewBlock();