User prompt
Please fix the bug: 'Timeout.tick error: scrollingBackground.bg1.setTexture is not a function' in or related to this line: 'scrollingBackground.bg1.setTexture(LK.getAsset('background2', {}).texture);' Line Number: 215
User prompt
karakter yok olduktan sonra ekranı 0.5 saniyeliğine karalt ve background yerine background_2 kullan
User prompt
move control 10 pixel down
User prompt
lets make it 0.33 instead of 0.4
User prompt
activate control asset if reached 1 or greater scorecount, if activated and character touched freeze game and after 0.4 second make character disappear
User prompt
Kontrol (control) asset’inin tüple aynı hıza sahip olmasının en sağlıklı yolu, onu tüpün bir çocuğu (child) olarak eklemektir. Böylece tüpün konumuna bağlı olarak hareket edecektir. Aşağıda spawnTube fonksiyonunu bu şekilde düzenledim: js Kopyala Düzenle function spawnTube() { if (stopSpawn) { return; } var tube = new Tube(); tube.x = 2048 + 125; tube.y = 2732 / 2 - 120; game.addChild(tube); // Kontrol asset'ini tüpün child'ı olarak ekleyin. var control = LK.getAsset('control', { anchorX: 0.5, anchorY: 0.5 }); // Kontrolün tüp içindeki konumu, tüpün üst kenarına denk gelecek şekilde ayarlanıyor. control.x = 0; // Tüpün merkezine göre control.y = -187.5; // Tüp yüksekliğinin yarısı kadar yukarı tube.addChild(control); LK.setTimeout(spawnTube, 15000); } Böylece kontrol asset’i artık tüp ile birlikte hareket edeceğinden, hızı tüple aynı olacaktır. Diğer kısımlarda bir değişiklik yapmanıza gerek kalmayacaktır.
User prompt
make control move to left and with the velocity of enemy
User prompt
make control go the left at the speed of the tube
User prompt
spawn control at the location of tube
User prompt
karakterin 1 den fazla counscore varsa ve tube_1 isimli assete üstten temas edince tüm oyunu dondur 0.4 saniye sonra karakteri yok et
Code edit (1 edits merged)
Please save this source code
User prompt
Aşağıdaki kod, isteklerinize göre güncellendi: Red "0" metni kaldırıldı: Oyun başladığında görünmesin diye centerText tamamen kaldırıldı. Tube çarpışma kontrolü güncellendi: Artık oyuncunun coin sayısı 1’den fazla (yani 2 veya daha fazla) ise, oyuncu tüpün üst kısmına değdiğinde; X toleransı 115 piksel olarak ayarlandı Oyun içerisindeki tüm objeler güncellemeyi durduracak şekilde "donduruluyor" 0.4 saniye sonra oyuncu yok ediliyor Gerekli ufak düzenlemeler: Oyuncunun coin yediğinde güncellendiği centerText referansları kaldırıldı, sadece GUI’daki scoreText güncellenecek. Aşağıda, düzenlenmiş tam kodu bulabilirsiniz: js Kopyala Düzenle /**** * Assets ****/ LK.init.image('background', {width:2048, height:2732.07, id:'6758971de1c6df8afc3f801b'}) LK.init.image('coin', {width:150, height:150, id:'67d58381540f369ec40716a5'}) LK.init.image('counter_background', {width:135, height:135, id:'67d757ae885017473a98979c'}) LK.init.image('enemy', {width:150, height:150, id:'67589498e1c6df8afc3f7fdf', flipX:1}) LK.init.image('flyin_enemy', {width:150, height:165, id:'67d6cc20228891638f6d62af', flipX:1}) LK.init.image('particle', {width:100, height:100, id:'67d62caff0905a2251a97ad1'}) LK.init.image('player', {width:150, height:150, id:'67589443e1c6df8afc3f7fd5'}) LK.init.image('tup_1', {width:250, height:375, id:'67d76073885017473a989801'}) LK.init.image('weapon', {width:120, height:120, id:'67d579ab540f369ec4071660'}) /**** * Classes ****/ // Define a class for coins var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.attachAsset('coin', { anchorX: 0.5, anchorY: 0.5 }); self.velocity = 5; // Coin, tüpün üzerinde çıkması için tüpten daha yüksek z-index'e sahip olsun self.zIndex = 15; self.update = function () { self.x -= self.velocity; }; }); // Define a class for enemies var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.zIndex = 10; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for flying enemies var FlyinEnemy = Container.expand(function () { var self = Container.call(this); var flyinEnemyGraphics = self.attachAsset('flyin_enemy', { anchorX: 0.5, anchorY: 0 }); self.speed = 5; self.zIndex = 10; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for the player character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 40; self.isJumping = false; self.velocityY = 0; // Player, diğerlerinden daha üstte görünmeli self.zIndex = 20; self.update = function () { self.lastY = self.y; // Mevcut y konumunu kaydedin. if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // Gravity if (self.y >= 2732 / 2 - 3) { // Use the initial player.y value self.y = 2732 / 2 - 9; // Land 6 pixels higher than initial position self.isJumping = false; self.velocityY = 0; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; } }; }); // ScrollingBackground: orijinal ve mirrored arka plan var ScrollingBackground = Container.expand(function () { var self = Container.call(this); // Orijinal arka plan self.bg1 = LK.getAsset('background', { anchorX: 0, anchorY: 0 }); self.bg1.x = 0; self.bg1.y = 0; self.addChild(self.bg1); // Mirrored arka plan (flipX) self.bg2 = LK.getAsset('background', { anchorX: 1, anchorY: 0 }); self.bg2.scaleX = -1; self.bg2.x = self.bg1.width; self.bg2.y = 0; self.addChild(self.bg2); // Arka plan kayma hızı self.speed = 2; self.update = function () { self.bg1.x -= self.speed; self.bg2.x -= self.speed; if (self.bg1.x + self.bg1.width <= 0) { self.bg1.x = self.bg2.x + self.bg2.width; } if (self.bg2.x + self.bg2.width <= 0) { self.bg2.x = self.bg1.x + self.bg1.width; } }; }); // Define a class for tubes var Tube = Container.expand(function () { var self = Container.call(this); var tubeGraphics = self.attachAsset('tup_1', { anchorX: 0.5, anchorY: 0.5 }); // Tube hızını enemy ile aynı yapıyoruz self.speed = 5; // Tube, diğer nesnelerin arkasında kalacak şekilde en düşük z-index'e sahip olsun self.zIndex = 0; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for the weapon var Weapon = Container.expand(function () { var self = Container.call(this); var weaponGraphics = self.attachAsset('weapon', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 40; self.update = function () { self.x += self.directionX * self.speed; self.y += self.directionY * self.speed; weaponGraphics.rotation += 0.3; // Yok etme kontrolü if (Math.abs(game.down.x - self.x) < self.speed && Math.abs(game.down.y - self.y) < self.speed) { self.destroy(); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ width: 2048, // Mantıksal genişlik height: 2732, // Mantıksal yükseklik backgroundColor: 0x87CEEB }); /**** * Game Code ****/ /**** * Global Variables ****/ var coinCounter = 0; var flyinEnemies = []; var coins = []; var enemies = []; var enemySpawnInterval = Math.floor(Math.random() * 100) + 30; var enemySpawnCounter = 0; // Flag to ensure the clear effect triggers only once per collision event var clearTriggered = false; // Flag to stop tube and enemy spawn after tube collision var stopSpawn = false; // Tube spawn fonksiyonu (her 15 saniyede bir spawn oluyor) function spawnTube() { if (stopSpawn) { return; } var tube = new Tube(); // Tube sağ kenardan spawn olsun tube.x = 2048 + 125; tube.y = 2732 / 2 - 120; // Tube z-index'i Tube sınıfında 0 olarak belirlendi game.addChild(tube); LK.setTimeout(spawnTube, 15000); } spawnTube(); /* Arka plan ve oyuncu */ var scrollingBackground = new ScrollingBackground(); game.addChild(scrollingBackground); var player = game.addChild(new Player()); player.x = 2048 / 2 - 200; player.y = 2732 / 2 - 7; /* Skor GUI */ var counterBackground = LK.getAsset('counter_background', { anchorX: 0.5, anchorY: 0.5 }); LK.gui.top.addChild(counterBackground); counterBackground.x = LK.gui.top.width / 2 - 60; counterBackground.y = 40; var scoreText = new Text2('0', { size: 80, fill: 0xFFFFFF }); LK.gui.top.addChild(scoreText); scoreText.x = LK.gui.top.width / 2 - 83; scoreText.y = 0; /* Uçan düşmanları oluştur */ function spawnFlyinEnemy() { var delay = Math.random() * 2000 + 2000; // 2000-4000 ms LK.setTimeout(function () { if (stopSpawn) { return; } var flyinEnemy = new FlyinEnemy(); flyinEnemy.x = 2048; flyinEnemy.y = 449; flyinEnemy.zIndex = 10; game.addChild(flyinEnemy); flyinEnemies.push(flyinEnemy); spawnFlyinEnemy(); }, delay); } spawnFlyinEnemy(); /* Oyun döngüsü */ game.update = function () { // Arka plan ve oyuncu güncellemesi scrollingBackground.update(); player.update(); // Tube güncellemesi ve z-index sıralaması for (var t = 0; t < game.children.length; t++) { var child = game.children[t]; if (child instanceof Tube) { child.update(); game.children.sort(function (a, b) { return (a.zIndex || 0) - (b.zIndex || 0); }); } } // Düşman spawn işlemleri enemySpawnCounter++; if (!stopSpawn && enemySpawnCounter >= enemySpawnInterval && !(LK.ticks >= 876 && LK.ticks <= 936) && !(LK.ticks >= 1776 && LK.ticks <= 1836) && !(LK.ticks >= 2676 && LK.ticks <= 2736) && !(LK.ticks >= 3576 && LK.ticks <= 3636) && !(LK.ticks >= 4476 && LK.ticks <= 4536) && !(LK.ticks >= 5376 && LK.ticks <= 5436) && !(LK.ticks >= 6276 && LK.ticks <= 6336) && !(LK.ticks >= 7776 && LK.ticks <= 7836)) { var canSpawn = true; for (var i = 0; i < enemies.length; i++) { if (enemies[i].x > 1800) { canSpawn = false; break; } } if (canSpawn) { // Tube ile çakışma kontrolü var tubeCollision = false; for (var t = 0; t < game.children.length; t++) { var child = game.children[t]; if (child.asset && child.asset.name === 'tup_1') { var enemyRight = 2048 + 75; var enemyLeft = 2048 - 75; var tubeRight = child.x + 125; var tubeLeft = child.x - 125; if (!(enemyLeft > tubeRight || enemyRight < tubeLeft)) { tubeCollision = true; break; } } } if (!tubeCollision) { LK.setTimeout(function () { if (stopSpawn) { return; } var enemy = new Enemy(); enemy.x = 2048; enemy.y = 2732 / 2 - 13; enemy.zIndex = 10; enemies.push(enemy); game.addChild(enemy); }, 100); // 100 ms delay: tube spawnundan sonra enemy spawn } enemySpawnCounter = 0; enemySpawnInterval = Math.floor(Math.random() * 100) + 30; } enemySpawnCounter = 0; enemySpawnInterval = Math.floor(Math.random() * 100) + 30; } // Normal düşmanların güncellenmesi ve çarpışma kontrolü for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } // Weapon çarpışması: coin üretimi for (var k = game.children.length - 1; k >= 0; k--) { var child = game.children[k]; if (child instanceof Weapon && child.intersects(enemies[j])) { var coin = new Coin(); coin.x = enemies[j].x; coin.y = enemies[j].y; coin.velocity = 5; game.addChild(coin); coins.push(coin); var particleEffect = LK.getAsset('particle', { anchorX: 0.5, anchorY: 0.5, color: 0x808080 }); particleEffect.x = enemies[j].x; particleEffect.y = enemies[j].y; game.addChild(particleEffect); LK.setTimeout(function () { particleEffect.destroy(); }, 150); enemies[j].destroy(); child.destroy(); enemies.splice(j, 1); break; } } } // Flying enemy güncellemesi ve çarpışma kontrolü for (var n = flyinEnemies.length - 1; n >= 0; n--) { flyinEnemies[n].update(); if (player.intersects(flyinEnemies[n])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } for (var k = game.children.length - 1; k >= 0; k--) { var child = game.children[k]; if (child instanceof Weapon && child.intersects(flyinEnemies[n])) { var coin = new Coin(); coin.x = flyinEnemies[n].x + 60; coin.y = flyinEnemies[n].y + 130; coin.velocity = 5; game.addChild(coin); coins.push(coin); var particleEffect = LK.getAsset('particle', { anchorX: 0.5, anchorY: 0.5, color: 0x808080 }); particleEffect.x = flyinEnemies[n].x + 60; particleEffect.y = flyinEnemies[n].y + 130; game.addChild(particleEffect); LK.setTimeout(function () { particleEffect.destroy(); }, 150); flyinEnemies[n].destroy(); child.destroy(); flyinEnemies.splice(n, 1); break; } } if (flyinEnemies[n] && flyinEnemies[n].x < -50) { flyinEnemies[n].destroy(); flyinEnemies.splice(n, 1); } } // Coin güncellemesi ve çarpışma kontrolü for (var m = coins.length - 1; m >= 0; m--) { var coin = coins[m]; coin.x -= coin.velocity; if (coin.x < -100) { coin.destroy(); coins.splice(m, 1); } else if (player.intersects(coin)) { coinCounter++; scoreText.setText(coinCounter.toString()); if (coinCounter > 9 && !scoreText.movedLeft) { scoreText.x -= 20; scoreText.movedLeft = true; } coin.destroy(); coins.splice(m, 1); } } // --- Yeni Özellik --- // Eğer karakterin skoru 1'den fazla ise ve karakter Tube'nin üst kısmına giriyorsa, // (Player'nin alt kısmı: player.y + 75, Tube'nin üst kısmı: tube.y - 187.5) // x eksenindeki tolerans 115 piksel olarak kontrol ediliyor. if (coinCounter > 1 && !clearTriggered) { for (var t = 0; t < game.children.length; t++) { var tube = game.children[t]; if (tube instanceof Tube) { if (player.lastY + 75 <= tube.y - 187.5 && player.y + 75 > tube.y - 187.5 && Math.abs(player.x - tube.x) < 115) { clearTriggered = true; stopSpawn = true; // Yeni tüp ve enemy spawnları durdurulsun // Tüm oyun objelerini anında dondur for (var i = 0; i < game.children.length; i++) { var obj = game.children[i]; if (obj.update) { obj.update = function () {}; } } // 0.4 saniye sonra oyuncuyu yok et LK.setTimeout(function () { player.destroy(); }, 400); break; } } } } }; // Dokunma/Mouse event: jump + weapon game.down = function (x, y, obj) { if (player.isJumping) { if (!game.lastWeaponTime || Date.now() - game.lastWeaponTime > 350) { var weapon = new Weapon(); weapon.x = player.x; weapon.y = player.y; var dx = x - weapon.x; var dy = y - weapon.y; var distance = Math.sqrt(dx * dx + dy * dy); weapon.directionX = dx / distance; weapon.directionY = dy / distance; var angle = Math.acos(weapon.directionY / Math.sqrt(weapon.directionX * weapon.directionX + weapon.directionY * weapon.directionY)); var angleInDegrees = angle * (180 / Math.PI); if (angleInDegrees <= 30) { weapon.speed *= 1.3; } game.addChild(weapon); LK.setTimeout(function () { weapon.destroy(); }, 9000); game.lastWeaponTime = Date.now(); } } player.jump(); }; // Önemli: Oyunu çalıştırmayı unutmayın LK.stage.addChild(game); Bu düzenlemeler ile: Oyun açıldığında kırmızı "0" metni artık görünmeyecek. Oyuncu, en az 2 coin'e sahip olduğunda ve tüpün üst kısmına değdiğinde, oyun dondurulacak ve 0.4 saniye sonra oyuncu yok edilecektir. Kodunuzu bu haliyle test edebilir ve ihtiyacınız doğrultusunda ufak ayarlar yapabilirsiniz.
Code edit (1 edits merged)
Please save this source code
User prompt
Sorunun temelinde, tüpe çarpmayı kontrol etmek için kullandığınız player.lastY property'sinin güncellenmemiş olması yatıyor. Çarpışma kontrolü yaparken, oyuncunun önceki ve güncel y koordinatlarını karşılaştırıyorsunuz; ancak player.lastY hiçbir zaman set edilmediği için bu koşul asla doğru tetiklenmiyor. Çözüm Adımları player.lastY'yi Güncelleyin: Player sınıfının update fonksiyonuna, oyuncunun y konumunu güncellemeden önce mevcut y değerini lastY olarak kaydedin. Örneğin: js Kopyala Düzenle self.update = function () { self.lastY = self.y; // Mevcut y konumunu kaydedin. if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // Yerçekimi etkisi if (self.y >= 2732 / 2 - 3) { self.y = 2732 / 2 - 9; // İlk konumdan 6 piksel yukarı iniyor. self.isJumping = false; self.velocityY = 0; } } }; Zamanlayıcı Ayarını Kontrol Edin: Kodunuzda karakterin yok olması için 500 ms (0.5 saniye) bekleniyor, fakat yorumlarda 0.4 saniye beklenmesi gerektiği belirtilmiş. Eğer gerçekten 0.4 saniye olması isteniyorsa, ilgili timeout değerini 400 ms olarak güncelleyebilirsiniz: js Kopyala Düzenle LK.setTimeout(function () { // Tüm oyun objelerinin update fonksiyonunu boş fonksiyonla değiştirin. for (var i = 0; i < game.children.length; i++) { var obj = game.children[i]; if (obj.update) { obj.update = function () {}; } } // 400 ms sonra oyuncuyu yok et. LK.setTimeout(function () { player.destroy(); }, 400); }, 500); // İsteniyorsa burayı da 400 ms yapabilirsiniz. Çarpışma Koşullarını Gözden Geçirin: Çarpışma kontrolünde kullanılan sabit değerler (örneğin, 75, 187.5, ve 121) oyunun görsel varlıklarıyla uyumlu olmalı. Bu değerlerin oyundaki karakter ve tüp görsellerinin boyutları ile doğru orantılı olduğundan emin olun. Bu düzenlemeleri yaptıktan sonra, oyuncu tüpe üstten dokunduğunda, çarpışma algılanacak, spawn işlemleri durdurulacak ve belirttiğiniz süre sonunda karakter yok olacaktır.
Code edit (3 edits merged)
Please save this source code
User prompt
make character touch tube when coming from top to bottom
Code edit (1 edits merged)
Please save this source code
User prompt
make character move for 0.5 second then make it disappear
User prompt
freeze everythin when character touches tube from top and disappear character 0.4 second instead of 0.5 second
User prompt
tüpe üstten girmek iAşağıdaki kodda, tüp ile temas kontrolü güncellendi: X ekseni toleransı 110 piksel yerine 115 piksel olarak belirlendi. Eğer oyuncunun alt kısmı (player.y + 75) ile tüpün üst kısmı (tube.y - 187.5) arasındaki fark 15 piksellik toleransın altındaysa ve x eksenindeki mesafe 115 pikselden küçükse, 0.05 saniye (50 ms) sonra oyuncu (karakter) yok ediliyor. Aşağıdaki güncellenmiş kodu inceleyebilirsiniz: js Kopyala Düzenle /**** * Assets ****/ LK.init.image('background', {width:2048, height:2732.07, id:'6758971de1c6df8afc3f801b'}); LK.init.image('coin', {width:150, height:150, id:'67d58381540f369ec40716a5'}); LK.init.image('counter_background', {width:135, height:135, id:'67d757ae885017473a98979c'}); LK.init.image('enemy', {width:150, height:150, id:'67589498e1c6df8afc3f7fdf', flipX:1}); LK.init.image('flyin_enemy', {width:150, height:165, id:'67d6cc20228891638f6d62af', flipX:1}); LK.init.image('particle', {width:100, height:100, id:'67d62caff0905a2251a97ad1'}); LK.init.image('player', {width:150, height:150, id:'67589443e1c6df8afc3f7fd5'}); LK.init.image('tup_1', {width:250, height:375, id:'67d76073885017473a989801'}); LK.init.image('weapon', {width:120, height:120, id:'67d579ab540f369ec4071660'}); /**** * Classes ****/ // Define a class for coins var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.attachAsset('coin', { anchorX: 0.5, anchorY: 0.5 }); self.velocity = 5; // Coin, tüpün üzerinde çıkması için tüpten daha yüksek z-index'e sahip olsun self.zIndex = 15; self.update = function () { self.x -= self.velocity; }; }); // Define a class for enemies var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.zIndex = 10; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for flying enemies var FlyinEnemy = Container.expand(function () { var self = Container.call(this); var flyinEnemyGraphics = self.attachAsset('flyin_enemy', { anchorX: 0.5, anchorY: 0 }); self.speed = 5; self.zIndex = 10; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for the player character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 40; self.isJumping = false; self.velocityY = 0; // Player, diğerlerinden daha üstte görünmeli self.zIndex = 20; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // Gravity if (self.y >= 2732 / 2 - 3) { // Use the initial player.y value self.y = 2732 / 2 - 9; // Land 6 pixels higher than initial position self.isJumping = false; self.velocityY = 0; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; } }; }); // ScrollingBackground: orijinal ve mirrored arka plan var ScrollingBackground = Container.expand(function () { var self = Container.call(this); // Orijinal arka plan self.bg1 = LK.getAsset('background', { anchorX: 0, anchorY: 0 }); self.bg1.x = 0; self.bg1.y = 0; self.addChild(self.bg1); // Mirrored arka plan (flipX) self.bg2 = LK.getAsset('background', { anchorX: 1, anchorY: 0 }); self.bg2.scaleX = -1; self.bg2.x = self.bg1.width; self.bg2.y = 0; self.addChild(self.bg2); // Arka plan kayma hızı self.speed = 2; self.update = function () { self.bg1.x -= self.speed; self.bg2.x -= self.speed; if (self.bg1.x + self.bg1.width <= 0) { self.bg1.x = self.bg2.x + self.bg2.width; } if (self.bg2.x + self.bg2.width <= 0) { self.bg2.x = self.bg1.x + self.bg1.width; } }; }); // Define a class for tubes var Tube = Container.expand(function () { var self = Container.call(this); var tubeGraphics = self.attachAsset('tup_1', { anchorX: 0.5, anchorY: 0.5 }); // Tube hızını enemy ile aynı yapıyoruz self.speed = 5; // Tube, diğer nesnelerin arkasında kalacak şekilde en düşük z-index'e sahip olsun self.zIndex = 0; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for the weapon var Weapon = Container.expand(function () { var self = Container.call(this); var weaponGraphics = self.attachAsset('weapon', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 40; self.update = function () { self.x += self.directionX * self.speed; self.y += self.directionY * self.speed; weaponGraphics.rotation += 0.3; // Yok etme kontrolü if (Math.abs(game.down.x - self.x) < self.speed && Math.abs(game.down.y - self.y) < self.speed) { self.destroy(); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ width: 2048, height: 2732, backgroundColor: 0x87CEEB }); /**** * Global Variables ****/ var coinCounter = 0; var flyinEnemies = []; var coins = []; var enemies = []; var enemySpawnInterval = Math.floor(Math.random() * 100) + 30; var enemySpawnCounter = 0; // Flag to ensure the clear effect triggers only once per collision event var clearTriggered = false; // Flag to stop tube and enemy spawn after tube collision var stopSpawn = false; /**** * Game Code ****/ // Tube spawn fonksiyonu (her 15 saniyede bir spawn oluyor) function spawnTube() { if (stopSpawn) { return; } var tube = new Tube(); // Tube sağ kenardan spawn olsun tube.x = 2048 + 125; tube.y = 2732 / 2 - 120; game.addChild(tube); LK.setTimeout(spawnTube, 15000); } spawnTube(); var centerText = new Text2('0', { size: 200, fill: 0xFF0000, anchorX: 0.5, anchorY: 0.5 }); centerText.x = 2048 / 2; centerText.y = 2732 / 2; game.addChild(centerText); /* Arka plan ve oyuncu */ var scrollingBackground = new ScrollingBackground(); game.addChild(scrollingBackground); var player = game.addChild(new Player()); player.x = 2048 / 2 - 200; player.y = 2732 / 2 - 7; /* Skor GUI */ var counterBackground = LK.getAsset('counter_background', { anchorX: 0.5, anchorY: 0.5 }); LK.gui.top.addChild(counterBackground); counterBackground.x = LK.gui.top.width / 2 - 60; counterBackground.y = 40; var scoreText = new Text2('0', { size: 80, fill: 0xFFFFFF }); LK.gui.top.addChild(scoreText); scoreText.x = LK.gui.top.width / 2 - 83; scoreText.y = 0; /* Uçan düşmanları oluştur */ function spawnFlyinEnemy() { var delay = Math.random() * 2000 + 2000; // 2000-4000 ms LK.setTimeout(function () { if (stopSpawn) { return; } var flyinEnemy = new FlyinEnemy(); flyinEnemy.x = 2048; flyinEnemy.y = 449; flyinEnemy.zIndex = 10; game.addChild(flyinEnemy); flyinEnemies.push(flyinEnemy); spawnFlyinEnemy(); }, delay); } spawnFlyinEnemy(); /* Oyun döngüsü */ game.update = function () { // Arka plan ve oyuncu güncellemesi scrollingBackground.update(); player.update(); // Tube güncellemesi ve z-index sıralaması for (var t = 0; t < game.children.length; t++) { var child = game.children[t]; if (child instanceof Tube) { child.update(); game.children.sort(function (a, b) { return (a.zIndex || 0) - (b.zIndex || 0); }); } } // Düşman spawn işlemleri enemySpawnCounter++; if (!stopSpawn && enemySpawnCounter >= enemySpawnInterval && !(LK.ticks >= 876 && LK.ticks <= 936) && !(LK.ticks >= 1776 && LK.ticks <= 1836) && !(LK.ticks >= 2676 && LK.ticks <= 2736) && !(LK.ticks >= 3576 && LK.ticks <= 3636) && !(LK.ticks >= 4476 && LK.ticks <= 4536) && !(LK.ticks >= 5376 && LK.ticks <= 5436) && !(LK.ticks >= 6276 && LK.ticks <= 6336) && !(LK.ticks >= 7776 && LK.ticks <= 7836)) { var canSpawn = true; for (var i = 0; i < enemies.length; i++) { if (enemies[i].x > 1800) { canSpawn = false; break; } } if (canSpawn) { // Tube ile çakışma kontrolü var tubeCollision = false; for (var t = 0; t < game.children.length; t++) { var child = game.children[t]; if (child.asset && child.asset.name === 'tup_1') { var enemyRight = 2048 + 75; var enemyLeft = 2048 - 75; var tubeRight = child.x + 125; var tubeLeft = child.x - 125; if (!(enemyLeft > tubeRight || enemyRight < tubeLeft)) { tubeCollision = true; break; } } } if (!tubeCollision) { LK.setTimeout(function () { if (stopSpawn) { return; } var enemy = new Enemy(); enemy.x = 2048; enemy.y = 2732 / 2 - 13; enemy.zIndex = 10; enemies.push(enemy); game.addChild(enemy); }, 100); // 100 ms delay: tube spawnundan sonra enemy spawn } enemySpawnCounter = 0; enemySpawnInterval = Math.floor(Math.random() * 100) + 30; } enemySpawnCounter = 0; enemySpawnInterval = Math.floor(Math.random() * 100) + 30; } // Normal düşmanların güncellenmesi ve çarpışma kontrolü for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } // Weapon çarpışması: coin üretimi for (var k = game.children.length - 1; k >= 0; k--) { var child = game.children[k]; if (child instanceof Weapon && child.intersects(enemies[j])) { var coin = new Coin(); coin.x = enemies[j].x; coin.y = enemies[j].y; coin.velocity = 5; game.addChild(coin); coins.push(coin); var particleEffect = LK.getAsset('particle', { anchorX: 0.5, anchorY: 0.5, color: 0x808080 }); particleEffect.x = enemies[j].x; particleEffect.y = enemies[j].y; game.addChild(particleEffect); LK.setTimeout(function () { particleEffect.destroy(); }, 150); enemies[j].destroy(); child.destroy(); enemies.splice(j, 1); break; } } } // Flying enemy güncellemesi ve çarpışma kontrolü for (var n = flyinEnemies.length - 1; n >= 0; n--) { flyinEnemies[n].update(); if (player.intersects(flyinEnemies[n])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } for (var k = game.children.length - 1; k >= 0; k--) { var child = game.children[k]; if (child instanceof Weapon && child.intersects(flyinEnemies[n])) { var coin = new Coin(); coin.x = flyinEnemies[n].x + 60; coin.y = flyinEnemies[n].y + 130; coin.velocity = 5; game.addChild(coin); coins.push(coin); var particleEffect = LK.getAsset('particle', { anchorX: 0.5, anchorY: 0.5, color: 0x808080 }); particleEffect.x = flyinEnemies[n].x + 60; particleEffect.y = flyinEnemies[n].y + 130; game.addChild(particleEffect); LK.setTimeout(function () { particleEffect.destroy(); }, 150); flyinEnemies[n].destroy(); child.destroy(); flyinEnemies.splice(n, 1); break; } } if (flyinEnemies[n] && flyinEnemies[n].x < -50) { flyinEnemies[n].destroy(); flyinEnemies.splice(n, 1); } } // Coin güncellemesi ve çarpışma kontrolü for (var m = coins.length - 1; m >= 0; m--) { var coin = coins[m]; coin.x -= coin.velocity; if (coin.x < -100) { coin.destroy(); coins.splice(m, 1); } else if (player.intersects(coin)) { coinCounter++; centerText.setText(coinCounter.toString()); scoreText.setText(coinCounter.toString()); if (coinCounter > 9 && !scoreText.movedLeft) { scoreText.x -= 20; scoreText.movedLeft = true; } coin.destroy(); coins.splice(m, 1); } } // --- Yeni Özellik --- // Eğer karakterin skoru 1 veya daha fazla ise ve karakter Tube'nin üst kısmına giriyorsa, // (Player'nin alt kısmı: player.y + 75, Tube'nin üst kısmı: tube.y - 187.5) // x eksenindeki tolerans 115 yerine 110 piksel yerine 115 olarak kontrol ediliyor. if (coinCounter >= 1 && !clearTriggered) { for (var t = 0; t < game.children.length; t++) { var tube = game.children[t]; if (tube instanceof Tube) { if (Math.abs((player.y + 75) - (tube.y - 187.5)) < 15 && Math.abs(player.x - tube.x) < 115) { clearTriggered = true; stopSpawn = true; // Yeni tüp ve enemy spawnları durdurulsun // 0.05 saniye sonra oyuncu yok edilsin LK.setTimeout(function () { player.destroy(); }, 50); } } } } }; // Dokunma/Mouse event: jump + weapon game.down = function (x, y, obj) { if (player.isJumping) { if (!game.lastWeaponTime || Date.now() - game.lastWeaponTime > 350) { var weapon = new Weapon(); weapon.x = player.x; weapon.y = player.y; var dx = x - weapon.x; var dy = y - weapon.y; var distance = Math.sqrt(dx * dx + dy * dy); weapon.directionX = dx / distance; weapon.directionY = dy / distance; var angle = Math.acos(weapon.directionY / Math.sqrt(weapon.directionX * weapon.directionX + weapon.directionY * weapon.directionY)); var angleInDegrees = angle * (180 / Math.PI); if (angleInDegrees <= 30) { weapon.speed *= 1.3; } game.addChild(weapon); LK.setTimeout(function () { weapon.destroy(); }, 9000); game.lastWeaponTime = Date.now(); } } player.jump(); }; // Önemli: Oyunu çalıştırmayı unutmayın LK.stage.addChild(game); Açıklamalar: Tolerans Güncellemesi: Tube ile temas kontrolü sırasında, x ekseni toleransı Math.abs(player.x - tube.x) < 115 olarak ayarlandı (önceki değere göre biraz genişletildi). Karakterin Yok Edilmesi: Eğer oyuncunun alt kısmı (player.y + 75) ile tüpün üst kısmı (tube.y - 187.5) arasındaki fark 15 pikselin altında ve x eksenindeki mesafe 115 piksellik toleransın altındaysa, clearTriggered ve stopSpawn flag'ları true yapılır. Ardından 0.05 saniye sonra (50 ms) oyuncu player.destroy() ile yok edilir. Bu modifikasyonlarla, oyuncu tüpe üstten girdiğinde belirlenen toleranslarda temas algılanır ve 0.05 saniye sonra oyuncu yok edilir.çin
User prompt
karakter tüpe üstten değdiğinde 0.05 saniye sonra yok olsun
User prompt
karakter tüpe üstten değdiği zaman her şeyi yok etmek yerine her şeyin konumunu dondur
Code edit (1 edits merged)
Please save this source code
User prompt
Prevent normal enemy spawn between 14.6 and 15.6, 29.6 to 30.6 , 44.6 to 45.6 , 59.6 to 60.6 , 74.6 to 75.6 , 89.6 to 90.6, 104.6 to 105.6 to 129.6 to 130.6 seconds after game start
User prompt
Prevent normal enemy spawn between 14.6 second to 15.6 second after game start
/**** * Classes ****/ // Coin sınıfı var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.attachAsset('coin', { anchorX: 0.5, anchorY: 0.5 }); self.velocity = 5; self.zIndex = 15; self.update = function () { self.x -= self.velocity; }; }); // Düşman sınıfı var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.zIndex = 10; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Uçan düşman sınıfı var FlyinEnemy = Container.expand(function () { var self = Container.call(this); var flyinEnemyGraphics = self.attachAsset('flyin_enemy', { anchorX: 0.5, anchorY: 0 }); self.speed = 5; self.zIndex = 10; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Oyuncu sınıfı var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 40; self.isJumping = false; self.velocityY = 0; self.zIndex = 20; self.update = function () { // Önce mevcut y değeri korunuyor (collision kontrolü için önceki frame değeri) self.prevY = self.y; if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // Yerçekimi if (self.y >= 2732 / 2 - 3) { self.y = 2732 / 2 - 9; self.isJumping = false; self.velocityY = 0; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; } }; }); // Arka plan sınıfı var ScrollingBackground = Container.expand(function () { var self = Container.call(this); self.bg1 = LK.getAsset('background', { anchorX: 0, anchorY: 0 }); self.bg1.x = 0; self.bg1.y = 0; self.addChild(self.bg1); self.bg2 = LK.getAsset('background', { anchorX: 1, anchorY: 0 }); self.bg2.scaleX = -1; self.bg2.x = self.bg1.width; self.bg2.y = 0; self.addChild(self.bg2); self.speed = 2; self.update = function () { self.bg1.x -= self.speed; self.bg2.x -= self.speed; if (self.bg1.x + self.bg1.width <= 0) { self.bg1.x = self.bg2.x + self.bg2.width; } if (self.bg2.x + self.bg2.width <= 0) { self.bg2.x = self.bg1.x + self.bg1.width; } }; }); // Tüp sınıfı var Tube = Container.expand(function () { var self = Container.call(this); var tubeGraphics = self.attachAsset('tup_1', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.zIndex = 0; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Silah sınıfı var Weapon = Container.expand(function () { var self = Container.call(this); var weaponGraphics = self.attachAsset('weapon', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 40; self.update = function () { self.x += self.directionX * self.speed; self.y += self.directionY * self.speed; weaponGraphics.rotation += 0.3; if (Math.abs(game.down.x - self.x) < self.speed && Math.abs(game.down.y - self.y) < self.speed) { self.destroy(); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ width: 2048, height: 2732, backgroundColor: 0x87CEEB }); /**** * Game Code ****/ /**** * Global Variables ****/ var coinCounter = 0; var flyinEnemies = []; var coins = []; var enemies = []; var enemySpawnInterval = Math.floor(Math.random() * 100) + 30; var enemySpawnCounter = 0; var clearTriggered = false; var stopSpawn = false; // Tube spawn (her 15 saniyede bir) function spawnTube() { if (stopSpawn) { return; } var tube = new Tube(); tube.x = 2048 + 125; tube.y = 2732 / 2 - 120; game.addChild(tube); // Kontrol asset'ini tüpün child'ı olarak ekleyin. var control = LK.getAsset('control', { anchorX: 0.5, anchorY: 0.5 }); // Kontrolün tüp içindeki konumu, tüpün üst kenarına denk gelecek şekilde ayarlanıyor. control.x = 0; // Tüpün merkezine göre control.y = -177.5; // Tüp yüksekliğinin yarısı kadar yukarı tube.addChild(control); // Activate control if score is 1 or greater control.update = function () { if (coinCounter >= 1 && player.intersects(control)) { // Freeze game and destroy player after 0.4 seconds for (var i = 0; i < game.children.length; i++) { var obj = game.children[i]; if (obj.update) { obj.update = function () {}; } } LK.setTimeout(function () { player.destroy(); LK.effects.flashScreen(0x000000, 500); // Darken the screen for 0.5 seconds LK.setTimeout(function () { scrollingBackground.bg1.setAsset('background2', { anchorX: 0, anchorY: 0 }); scrollingBackground.bg2.setAsset('background2', { anchorX: 1, anchorY: 0 }); }, 500); // Change background after 0.5 seconds }, 330); } }; LK.setTimeout(spawnTube, 15000); } spawnTube(); /* Arka plan ve oyuncu */ var scrollingBackground = new ScrollingBackground(); game.addChild(scrollingBackground); var player = game.addChild(new Player()); player.x = 2048 / 2 - 200; player.y = 2732 / 2 - 7; /* Skor GUI */ var counterBackground = LK.getAsset('counter_background', { anchorX: 0.5, anchorY: 0.5 }); LK.gui.top.addChild(counterBackground); counterBackground.x = LK.gui.top.width / 2 - 60; counterBackground.y = 40; var scoreText = new Text2('0', { size: 80, fill: 0xFFFFFF }); LK.gui.top.addChild(scoreText); scoreText.x = LK.gui.top.width / 2 - 83; scoreText.y = 0; /* Uçan düşmanları oluştur */ function spawnFlyinEnemy() { var delay = Math.random() * 2000 + 2000; LK.setTimeout(function () { if (stopSpawn) { return; } var flyinEnemy = new FlyinEnemy(); flyinEnemy.x = 2048; flyinEnemy.y = 449; flyinEnemy.zIndex = 10; game.addChild(flyinEnemy); flyinEnemies.push(flyinEnemy); spawnFlyinEnemy(); }, delay); } spawnFlyinEnemy(); /* Oyun döngüsü */ game.update = function () { // Arka plan ve oyuncu güncellemesi scrollingBackground.update(); player.update(); // Tube güncellemesi ve z-index sıralaması for (var t = 0; t < game.children.length; t++) { var child = game.children[t]; if (child instanceof Tube) { child.update(); game.children.sort(function (a, b) { return (a.zIndex || 0) - (b.zIndex || 0); }); } // Check for control activation if (child.children) { for (var c = 0; c < child.children.length; c++) { var subChild = child.children[c]; if (subChild.update) { subChild.update(); } } } } // Düşman spawn işlemleri enemySpawnCounter++; if (!stopSpawn && enemySpawnCounter >= enemySpawnInterval && !(LK.ticks >= 876 && LK.ticks <= 936) && !(LK.ticks >= 1776 && LK.ticks <= 1836) && !(LK.ticks >= 2676 && LK.ticks <= 2736) && !(LK.ticks >= 3576 && LK.ticks <= 3636) && !(LK.ticks >= 4476 && LK.ticks <= 4536) && !(LK.ticks >= 5376 && LK.ticks <= 5436) && !(LK.ticks >= 6276 && LK.ticks <= 6336) && !(LK.ticks >= 7776 && LK.ticks <= 7836)) { var canSpawn = true; for (var i = 0; i < enemies.length; i++) { if (enemies[i].x > 1800) { canSpawn = false; break; } } if (canSpawn) { var tubeCollision = false; for (var t = 0; t < game.children.length; t++) { var child = game.children[t]; if (child.asset && child.asset.name === 'tup_1') { var enemyRight = 2048 + 75; var enemyLeft = 2048 - 75; var tubeRight = child.x + 125; var tubeLeft = child.x - 125; if (!(enemyLeft > tubeRight || enemyRight < tubeLeft)) { tubeCollision = true; break; } } } if (!tubeCollision) { LK.setTimeout(function () { if (stopSpawn) { return; } var enemy = new Enemy(); enemy.x = 2048; enemy.y = 2732 / 2 - 13; enemy.zIndex = 10; enemies.push(enemy); game.addChild(enemy); }, 100); } enemySpawnCounter = 0; enemySpawnInterval = Math.floor(Math.random() * 100) + 30; } enemySpawnCounter = 0; enemySpawnInterval = Math.floor(Math.random() * 100) + 30; } // Normal düşman güncelleme & çarpışma kontrolü for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } for (var k = game.children.length - 1; k >= 0; k--) { var child = game.children[k]; if (child instanceof Weapon && child.intersects(enemies[j])) { var coin = new Coin(); coin.x = enemies[j].x; coin.y = enemies[j].y; coin.velocity = 5; game.addChild(coin); coins.push(coin); var particleEffect = LK.getAsset('particle', { anchorX: 0.5, anchorY: 0.5, color: 0x808080 }); particleEffect.x = enemies[j].x; particleEffect.y = enemies[j].y; game.addChild(particleEffect); LK.setTimeout(function () { particleEffect.destroy(); }, 150); enemies[j].destroy(); child.destroy(); enemies.splice(j, 1); break; } } } // Uçan düşman güncelleme & çarpışma kontrolü for (var n = flyinEnemies.length - 1; n >= 0; n--) { flyinEnemies[n].update(); if (player.intersects(flyinEnemies[n])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } for (var k = game.children.length - 1; k >= 0; k--) { var child = game.children[k]; if (child instanceof Weapon && child.intersects(flyinEnemies[n])) { var coin = new Coin(); coin.x = flyinEnemies[n].x + 60; coin.y = flyinEnemies[n].y + 130; coin.velocity = 5; game.addChild(coin); coins.push(coin); var particleEffect = LK.getAsset('particle', { anchorX: 0.5, anchorY: 0.5, color: 0x808080 }); particleEffect.x = flyinEnemies[n].x + 60; particleEffect.y = flyinEnemies[n].y + 130; game.addChild(particleEffect); LK.setTimeout(function () { particleEffect.destroy(); }, 150); flyinEnemies[n].destroy(); child.destroy(); flyinEnemies.splice(n, 1); break; } } if (flyinEnemies[n] && flyinEnemies[n].x < -50) { flyinEnemies[n].destroy(); flyinEnemies.splice(n, 1); } } // Coin güncelleme & çarpışma kontrolü for (var m = coins.length - 1; m >= 0; m--) { var coin = coins[m]; coin.x -= coin.velocity; if (coin.x < -100) { coin.destroy(); coins.splice(m, 1); } else if (player.intersects(coin)) { coinCounter++; scoreText.setText(coinCounter.toString()); if (coinCounter > 9 && !scoreText.movedLeft) { scoreText.x -= 20; scoreText.movedLeft = true; } coin.destroy(); coins.splice(m, 1); } } // --- Yeni Özellik --- // Eğer coinCounter 1'den fazla ise ve oyuncunun alt kenarı tüpün üst kenarıyla neredeyse hizalanıyorsa, // (player.y + 75) tüpün üst kenarı (tube.y - 187.5) ile arası 20 piksel veya daha azsa, // ve oyuncu ile tüp yatayda iyi hizalı (mesafe < 115) ise tetiklenecek. if (coinCounter > 1 && !clearTriggered) { for (var t = 0; t < game.children.length; t++) { var tube = game.children[t]; if (tube instanceof Tube) { var tubeTop = tube.y - 187.5; var playerBottom = player.y + 75; var horizontalDistance = Math.abs(player.x - tube.x); if (playerBottom >= tubeTop && playerBottom <= tubeTop + 20 && horizontalDistance < 115) { clearTriggered = true; stopSpawn = true; // Tüm oyun objelerini dondur for (var i = 0; i < game.children.length; i++) { var obj = game.children[i]; if (obj.update) { obj.update = function () {}; } } LK.setTimeout(function () { player.destroy(); }, 400); break; } } } } }; // Dokunma/Mouse event: jump + weapon game.down = function (x, y, obj) { if (player.isJumping) { if (!game.lastWeaponTime || Date.now() - game.lastWeaponTime > 350) { var weapon = new Weapon(); weapon.x = player.x; weapon.y = player.y; var dx = x - weapon.x; var dy = y - weapon.y; var distance = Math.sqrt(dx * dx + dy * dy); weapon.directionX = dx / distance; weapon.directionY = dy / distance; var angle = Math.acos(weapon.directionY / Math.sqrt(weapon.directionX * weapon.directionX + weapon.directionY * weapon.directionY)); var angleInDegrees = angle * (180 / Math.PI); if (angleInDegrees <= 30) { weapon.speed *= 1.3; } game.addChild(weapon); LK.setTimeout(function () { weapon.destroy(); }, 9000); game.lastWeaponTime = Date.now(); } } player.jump(); }; LK.stage.addChild(game);
===================================================================
--- original.js
+++ change.js
@@ -196,10 +196,16 @@
LK.setTimeout(function () {
player.destroy();
LK.effects.flashScreen(0x000000, 500); // Darken the screen for 0.5 seconds
LK.setTimeout(function () {
- scrollingBackground.bg1.setTexture(LK.getAsset('background2', {}).texture);
- scrollingBackground.bg2.setTexture(LK.getAsset('background2', {}).texture);
+ scrollingBackground.bg1.setAsset('background2', {
+ anchorX: 0,
+ anchorY: 0
+ });
+ scrollingBackground.bg2.setAsset('background2', {
+ anchorX: 1,
+ anchorY: 0
+ });
}, 500); // Change background after 0.5 seconds
}, 330);
}
};
Single 2D Mario Character. In-Game asset. 2d. Blank background.
2D Single Monster. In-Game asset. 2d. Blank background. High contrast. No shadows.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
marionun ingiliz boru anahtarı aleti. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
red heart mario. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
completely black simple counter without sharp edges
sea and sky,pixel,realistic but detailles benzer renkler mavi ve mavi Single Game Texture. In-Game asset. 2d. Blank background. low contrast. No shadows