User prompt
move counter to middle
User prompt
more and more it is invisible because out of screen move it to the screen
User prompt
move counter to more left
User prompt
50 pixel left
User prompt
1 cantimeter left
User prompt
left
User prompt
even more left
User prompt
move to little bit left
User prompt
move it to left
User prompt
keep y axis same and put counter to right of the screen
User prompt
take counter little bit right and down
User prompt
make it for also tree and mirrored tree
User prompt
add a counter on top left of the screen and increase by 1 when going between tube and mirrored tube
User prompt
when character goes between tube and mirrored tube increase object passed by 1
User prompt
only count tree and tube passed
User prompt
and let the player see the amount on top left of screen
User prompt
count the amount of things you pass when character passes it
User prompt
make it go under screen when game over
User prompt
after character dies when it falls make it untouchable and make it fall to bottom of screen
User prompt
when character touches ground game over
User prompt
disable rotation change of characters when character dies
User prompt
disable character controlls when character dies
User prompt
make game untouchable for 3 seconds when character dies
User prompt
freeze game 5 second after character dies
Code edit (1 edits merged)
Please save this source code
/**** * Classes ****/ // Character: Dokunulduğunda zıplar. var Character = Container.expand(function () { var self = Container.call(this); self.attachAsset('character', { anchorX: 0.5, anchorY: 0.5 }); self.zIndex = 4; // En önde self.velocityY = 0; self.gravity = 0.3; self.jumpStrength = -12; self.width = 350; // Karakter genişliği self.height = 300; // Karakter yüksekliği self.update = function () { if (gameStarted && !gameOver) { self.velocityY += self.gravity; self.y += self.velocityY; if (self.y > groundY - 100) { self.y = groundY - 100; self.velocityY = 0; gameOver = true; endGame(); } // Karakterin yarısı ekran dışına çıkarsa ölüm kontrolü var characterLeft = self.x - self.width / 2; var characterRight = self.x + self.width / 2; var characterTop = self.y - self.height / 2; var characterBottom = self.y + self.height / 2; // Ekran sınırları var screenLeft = 0; var screenRight = 2048; var screenTop = 0; var screenBottom = groundY; // Karakterin yarısı ekranın solundan çıkarsa if (characterLeft + self.width / 2 < screenLeft) { gameOver = true; endGame(); } // Karakterin yarısı ekranın sağından çıkarsa else if (characterRight - self.width / 2 > screenRight) { gameOver = true; endGame(); } // Karakterin yarısı ekranın üstünden çıkarsa else if (characterTop + self.height / 2 < screenTop) { gameOver = true; endGame(); } // Karakterin yarısı ekranın altından çıkarsa else if (characterBottom - self.height / 2 > screenBottom) { gameOver = true; endGame(); } } }; self.jump = function () { if (!gameOver) { self.velocityY = self.jumpStrength; } }; }); // GameOver Text var GameOverText = Container.expand(function () { var self = Container.call(this); // Metin oluşturma self.text = new Text2("GAME OVER", { fontFamily: "Arial", fontSize: 2250, fill: 0xFF0000, align: "center", fontWeight: "bold" }); // Metni ortala self.text.anchorX = 0.5; self.text.anchorY = 0.5; self.addChild(self.text); self.zIndex = 100; // En üstte göster return self; }); // Tree: Tube mantığıyla oluşturuldu, alt tree normal, // üst tree ise 180 derece döndürülerek aynalama efekti veriliyor. var Tree = Container.expand(function () { var self = Container.call(this); var bottomUnit = Math.floor(Math.random() * 8) + 1; var topUnit = 9 - bottomUnit; var unitSize = groundY / totalUnits; var bottomHeight = bottomUnit * unitSize; var topHeight = topUnit * unitSize; self.y = groundY; // Alt Tree: normal asset self.bottomTree = self.attachAsset('tree', { anchorX: 0.5, anchorY: 1, width: 300, height: bottomHeight, flipY: false }); // Üst Tree: 180 derece döndürülerek aynalama efekti veriliyor. self.topTree = self.attachAsset('tree', { anchorX: 0.5, anchorY: 0.5, width: 300, height: topHeight, flipY: false }); self.topTree.rotation = Math.PI; self.topTree.y = -groundY - gapOffset + topHeight / 2; self.zIndex = 1; // Background'ın üstünde, sky/ground'dan önce self.x = 2048 + 800; // Ekranın hemen dışında spawn ediliyor self.velocityX = -3.6; self.spawned = false; self.prevX = self.x; self.update = function () { if (gameStarted && !gameOver) { self.x += self.velocityX; // Tree'nin spawn threshold değeri: Ekranın ortası ile en sağı arasındaki orta nokta if (!self.spawned && self.prevX > treeSpawnThreshold && self.x <= treeSpawnThreshold) { self.spawned = true; var newTube = new Tube(); newTube.x = 2048 + 800; // Yeni obje ekran dışında spawn ediliyor game.addChild(newTube); lastSpawner = newTube; } self.prevX = self.x; // Check if the character has passed between the tree and mirrored tree if (!self.passed && character.x > self.x + self.bottomTree.width / 2) { self.passed = true; passCounter += 1; // Increase the counter counterText.setText(passCounter); // Update the counter display } } }; }); // Tube: var Tube = Container.expand(function () { var self = Container.call(this); var bottomUnit = Math.floor(Math.random() * 8) + 1; var topUnit = 9 - bottomUnit; var unitSize = groundY / totalUnits; var bottomHeight = bottomUnit * unitSize; var topHeight = topUnit * unitSize; self.y = groundY; // Alt Tube: normal asset self.bottomTube = self.attachAsset('tube', { anchorX: 0.5, anchorY: 1, width: 300, height: bottomHeight, flipY: false }); // Üst Tube: 180 derece döndürülerek aynalama efekti veriliyor. self.topTube = self.attachAsset('tube', { anchorX: 0.5, anchorY: 0.5, width: 300, height: topHeight, flipY: false }); self.topTube.rotation = Math.PI; self.topTube.y = -groundY - gapOffset + topHeight / 2; self.zIndex = 1; // Background'ın üstünde, sky/ground'dan önce self.x = 2048 + 800; // Ekranın hemen dışında spawn ediliyor self.velocityX = -3.6; self.spawned = false; self.prevX = self.x; self.update = function () { if (gameStarted && !gameOver) { self.x += self.velocityX; // Tube'un spawn threshold değeri: Ekranın en sağı ile ortasının arasındaki orta nokta if (!self.spawned && self.prevX > tubeSpawnThreshold && self.x <= tubeSpawnThreshold) { self.spawned = true; var newTree = new Tree(); newTree.x = 2048 + 800; // Yeni obje ekran dışında spawn ediliyor game.addChild(newTree); lastSpawner = newTree; } self.prevX = self.x; // Check if the character has passed between the tube and mirrored tube if (!self.passed && character.x > self.x + self.bottomTube.width / 2) { self.passed = true; passCounter += 1; // Increase the counter counterText.setText(passCounter); // Update the counter display } } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // Initialize a counter to track the number of times the character goes between the tube and mirrored tube var passCounter = 0; // Create a Text2 object to display the counter on the top left of the screen var counterText = new Text2('0', { size: 100, fill: 0xFFFFFF }); counterText.anchor.set(0, 0); // Set anchor to the top-left corner counterText.x = 20; // Position to the left of the screen counterText.y = 20; // Keep the y-axis the same LK.gui.topRight.addChild(counterText); // Add the counter text to the GUI overlay /**** * Global Değişkenler ****/ // Background: En arkada. var gapOffset = 400; // Normal ve mirror arasındaki boşluk var gameStarted = false; var gameOver = false; var centerX = 2048 / 2; var screenRight = 2048; // Ekranın en sağı // Ekranın ortası ile en sağı arasındaki orta nokta (Tube için) var tubeSpawnThreshold = centerX + (screenRight - centerX) / 2; // Ekranın en sağı ile ortasının arasındaki orta nokta (Tree için) var treeSpawnThreshold = centerX + 3 * (screenRight - centerX) / 4; var groundY = 2732; var totalUnits = 10; var lastSpawner = null; var gameOverText = null; var background = LK.getAsset('background', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: groundY / 2 }); background.zIndex = 0; game.addChild(background); // Sky: Ekranın en üstünde yer alması için konumlandırıldı. var sky = LK.getAsset('sky', { anchorX: 0.5, anchorY: 0, x: 2048 / 2, y: 0 }); sky.zIndex = 2; game.addChild(sky); // Ground: Sky'ın üzerinde. var groundAsset = LK.getAsset('ground', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: groundY - -25 }); groundAsset.zIndex = 4.1; game.addChild(groundAsset); // Add ground2 on top of the existing ground asset // Add ground2 on top of the existing ground asset var ground2Asset = LK.getAsset('ground2', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: groundY - 40 }); // Set zIndex lower than tree and tube (which are 1) so ground2 appears behind them ground2Asset.zIndex = 0.5; game.addChild(ground2Asset); // Character: En önde. var character = game.addChild(new Character()); character.x = 2048 / 2; character.y = groundY / 2; // Oyun sonu fonksiyonu function endGame() { // Flash screen red for a moment LK.effects.flashScreen(0xFF0000, 500); // Make character untouchable and fall to the bottom of the screen character.velocityY = character.jumpStrength; character.update = function () { if (gameOver) { character.velocityY += character.gravity; character.y += character.velocityY; if (character.y > groundY + character.height) { character.y = groundY + character.height; character.velocityY = 0; } } }; // Tüm hareketleri durdur game.children.forEach(function (child) { if (child.velocityX) { child.velocityX = 0; } }); // Disable touch input for 3 seconds game.touchDisabled = true; LK.setTimeout(function () { game.touchDisabled = false; }, 3000); // 5 saniye sonra oyunu yeniden başlat LK.setTimeout(function () { resetGame(); }, 5000); } // Oyunu sıfırlama fonksiyonu function resetGame() { // Game Over metnini kaldır if (gameOverText) { game.removeChild(gameOverText); gameOverText = null; } // Tüm tube ve tree objelerini kaldır var objectsToRemove = []; game.children.forEach(function (child) { if (child instanceof Tree || child instanceof Tube) { objectsToRemove.push(child); } }); objectsToRemove.forEach(function (obj) { game.removeChild(obj); }); // Karakteri başlangıç pozisyonuna getir character.x = 2048 / 2; character.y = groundY / 2; character.velocityY = 0; character.rotation = 0; // Disable character rotation when game is over character.update = function () { if (gameOver) { character.rotation = 0; } }; // Oyunu sıfırla gameStarted = false; gameOver = false; lastSpawner = null; } // Dokunma olayı: Ekrana dokununca oyun başlar ve sağdan ilk Tube spawn edilir. game.down = function (x, y, obj) { if (gameOver) { if (!game.touchDisabled) { resetGame(); } } else if (!gameStarted) { gameStarted = true; var initialTube = new Tube(); game.addChild(initialTube); lastSpawner = initialTube; } character.jump(); character.rotation = 0.1; LK.setTimeout(function () { character.rotation = 0; }, 200); }; // Oyun döngüsü. game.update = function () { game.children.forEach(function (child) { if (child.update) { child.update(); } }); game.children.sort(function (a, b) { return (a.zIndex || 0) - (b.zIndex || 0); }); };
===================================================================
--- original.js
+++ change.js
@@ -205,9 +205,9 @@
size: 100,
fill: 0xFFFFFF
});
counterText.anchor.set(0, 0); // Set anchor to the top-left corner
-counterText.x = screenRight - counterText.width - 20; // Position to the right of the screen
+counterText.x = 20; // Position to the left of the screen
counterText.y = 20; // Keep the y-axis the same
LK.gui.topRight.addChild(counterText); // Add the counter text to the GUI overlay
/****
* Global Değişkenler