User prompt
Dahada büyült
User prompt
Alt blok ve üst blok boyutlarını eşitle ve büyüt
User prompt
Üstteki kutuyu ipe yapıştır ve ip nereye giderse kutu oraya gitsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Üstteki blok ip ile kordineli saga sola sallanmal ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Şimdi bu ipin ucuna bir kare yap bu kare iple baraber sallanıcak ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Biraz daha sallansın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Bu ip saga ve sola sallanıcak ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Şimdi bana tam ortadan aşagı inecek şekilde bir ip yap aşagı uzunlugu orta kısmın biraz üzerinde kalsın
User prompt
Ozaman ipi ve blogu sil tekrar kodlıcaz
User prompt
Üstteki blok ve ipi birleştir ikisi kordine hareket etsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Üstteki ip be blok ekran dısında kalıyor
User prompt
Üstten gelen blogu iple birleştir ve ekran tepesine sabitle
User prompt
Blokları kare yap ve büyüt
User prompt
Blok dimini ekran bitişinde kayboluyor neden oyun sonsuza kadar yukarı dogru ddvam etmeli
Code edit (1 edits merged)
Please save this source code
User prompt
City Bloxx - Stack the Blocks
Initial prompt
Ctiy bloxx oyunu yapıcaz anlatıyorum zemine bir kutu koyucaz sonra yukardan bir ip ucunda yeni bir blok dogacak dogan blok saga sola sallanıcak oyuncu dokundugunda aşagı düşecek amac blokları üst üste yerleştirmek
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var StackedBlock = Container.expand(function () { var self = Container.call(this); var block = self.attachAsset('block', { anchorX: 0.5, anchorY: 0.5 }); return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87ceeb }); /**** * Game Code ****/ // Game state var stackedBlocks = []; var gameHeight = 2732; var gameWidth = 2048; var groundLevel = gameHeight - 200; var stackHeight = 0; var gameActive = true; // Create foundation block var foundation = new StackedBlock(); foundation.x = gameWidth / 2; foundation.y = groundLevel; game.addChild(foundation); stackedBlocks.push(foundation); stackHeight = foundation.y; // Score display var scoreTxt = new Text2('Blocks: 0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt);
===================================================================
--- original.js
+++ change.js
@@ -13,65 +13,8 @@
anchorY: 0.5
});
return self;
});
-var SwingingBlock = Container.expand(function () {
- var self = Container.call(this);
- // Create rope
- var rope = self.attachAsset('rope', {
- anchorX: 0.5,
- anchorY: 0
- });
- // Create block attached to rope
- var block = self.attachAsset('block', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- // Swing properties
- self.swingAngle = 0;
- self.swingSpeed = 0.05;
- self.swingRadius = Math.PI / 3; // 60 degrees swing
- self.isSwinging = true;
- self.isFalling = false;
- self.ropeLength = 200;
- // Position rope at top of screen (fixed anchor point)
- rope.y = 0;
- self.update = function () {
- if (self.isSwinging) {
- self.swingAngle += self.swingSpeed;
- var swingOffset = Math.sin(self.swingAngle) * 200; // Horizontal swing distance
- // Position both rope and block together as a unit
- self.x = swingOffset;
- // Position block at end of rope relative to rope
- block.x = 0;
- block.y = self.ropeLength;
- // Update rope rotation to follow swing
- rope.rotation = Math.atan2(swingOffset, self.ropeLength);
- // Adjust rope height to reach the block
- rope.height = self.ropeLength;
- } else if (self.isFalling) {
- block.y += 8; // Fall speed
- }
- };
- self.drop = function () {
- if (self.isSwinging) {
- self.isSwinging = false;
- self.isFalling = true;
- rope.visible = false; // Hide rope when dropped
- LK.getSound('drop').play();
- }
- };
- self.getBlockPosition = function () {
- return {
- x: self.x + block.x,
- y: self.y + block.y
- };
- };
- self.getBlock = function () {
- return block;
- };
- return self;
-});
/****
* Initialize Game
****/
@@ -83,9 +26,8 @@
* Game Code
****/
// Game state
var stackedBlocks = [];
-var currentSwingingBlock = null;
var gameHeight = 2732;
var gameWidth = 2048;
var groundLevel = gameHeight - 200;
var stackHeight = 0;
@@ -102,83 +44,5 @@
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
-LK.gui.top.addChild(scoreTxt);
-// Create first swinging block
-function createNewSwingingBlock() {
- if (currentSwingingBlock) {
- currentSwingingBlock.destroy();
- }
- currentSwingingBlock = new SwingingBlock();
- currentSwingingBlock.x = gameWidth / 2;
- currentSwingingBlock.y = 150; // Adjusted position to keep rope anchor visible
- game.addChild(currentSwingingBlock);
-}
-// Check if dropped block landed on stack
-function checkBlockLanding(droppedBlock) {
- var blockPos = droppedBlock.getBlockPosition();
- var block = droppedBlock.getBlock();
- // Check if block has fallen to stack level
- if (blockPos.y >= stackHeight - 60) {
- // Check horizontal alignment with top of stack
- var topBlock = stackedBlocks[stackedBlocks.length - 1];
- var horizontalDistance = Math.abs(blockPos.x - topBlock.x);
- if (horizontalDistance < 80) {
- // Successful stack
- // Create new stacked block
- var newStackedBlock = new StackedBlock();
- newStackedBlock.x = blockPos.x;
- newStackedBlock.y = stackHeight - 120;
- game.addChild(newStackedBlock);
- stackedBlocks.push(newStackedBlock);
- // Update stack height
- stackHeight -= 120;
- // Update score
- LK.setScore(LK.getScore() + 1);
- scoreTxt.setText('Blocks: ' + LK.getScore());
- // Remove swinging block
- currentSwingingBlock.destroy();
- currentSwingingBlock = null;
- // Play stack sound
- LK.getSound('stack').play();
- // Create next block after short delay
- LK.setTimeout(function () {
- if (gameActive) {
- createNewSwingingBlock();
- }
- }, 500);
- } else {
- // Missed stack - game over
- gameActive = false;
- LK.setTimeout(function () {
- LK.showGameOver();
- }, 1000);
- }
- }
- // Check if block fell off screen
- if (blockPos.y > gameHeight + 100) {
- gameActive = false;
- LK.setTimeout(function () {
- LK.showGameOver();
- }, 500);
- }
-}
-// Touch/tap handler
-game.down = function (x, y, obj) {
- if (currentSwingingBlock && gameActive) {
- currentSwingingBlock.drop();
- }
-};
-// Main game update loop
-game.update = function () {
- if (!gameActive) return;
- // Check if dropped block needs landing check
- if (currentSwingingBlock && currentSwingingBlock.isFalling) {
- checkBlockLanding(currentSwingingBlock);
- }
- // Move camera up as tower grows (infinite upward movement)
- var targetY = gameHeight / 2 - stackHeight;
- game.y = targetY * 0.3; // Smooth camera follow
-};
-// Start the game
-createNewSwingingBlock();
\ No newline at end of file
+LK.gui.top.addChild(scoreTxt);
\ No newline at end of file