User prompt
arkaya şarkı ekle
User prompt
ayarlar kısmı ekle
User prompt
şu ateşi sil ya alttan çıkan ve rekor paneli ekle en çok puanı kim yapmış diye ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
ateşe ben assets eklicem ekler misin
User prompt
Please fix the bug: 'Uncaught TypeError: tween.to is not a function' in or related to this line: 'tween.to(greenFire, {' Line Number: 185 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
3 cu zıpala olsun altından böyle yeşil bir ateş çıksın üç kere tıklıyınca yani
User prompt
game over geri getir
User prompt
game over yazan yere güzel bir tema yap güzel ölme ekranı yap
User prompt
Yukardaki puan şablonunu geri getir
User prompt
Üste puan sayması için bi şey ekler misin
User prompt
sayaç koy sayaç puan sayacı
User prompt
kanka sayacı da güzel bir şey yapsana sana zahmet
User prompt
karakterin ayakları da oynasını birde yukarda sadece imaj için uçan kuşlar olsun ve sadece hayvan aslan olmasın kanka kaplan falan da ekle 2 3 tane daha ekle
User prompt
hedefler biraz daha aralı olsun çok yakın olmasın ileri seviyelerde hızlansın ama bu kadar yakın olmasın ve karakterin hitboxu deymese bile karakter ölüyor
User prompt
arkaya hızlı bir şarkı ekle ve arka planı orman yap
User prompt
iki kere tıklayınca duble jump olsun
Code edit (1 edits merged)
Please save this source code
User prompt
Orman Zıplama Macerası
Initial prompt
Bir ormandayız ve sadece zıplayarak engellerin üstünden atlıyoruz bazen kaplan tarzı saldırgan hayvanlar çıkarsa onların da üstünden zıplıyoruz ormanda geçicek map ona göre tample run un 2d versiyonu tek tık ile sadece zıplayarak puan topluyoruz engellerden zıplayarak
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Saldırgan hayvan (düşman) var Enemy = Container.expand(function () { var self = Container.call(this); var enemyAsset = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 1 }); self.speed = 26; // px/frame self.update = function () { self.x -= self.speed; }; return self; }); // Engeller (kütük) var Obstacle = Container.expand(function () { var self = Container.call(this); var obsAsset = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 1 }); self.speed = 22; // px/frame self.update = function () { self.x -= self.speed; }; return self; }); // Koşucu karakter var Runner = Container.expand(function () { var self = Container.call(this); var runnerAsset = self.attachAsset('runner', { anchorX: 0.5, anchorY: 1 }); // Zıplama parametreleri self.isJumping = false; self.jumpVelocity = 0; self.gravity = 3.2; self.jumpPower = -54; self.groundY = 0; // Oyun başında ayarlanacak // Double jump için ek sayaç self.jumpCount = 0; self.maxJumps = 2; // Güncelleme fonksiyonu self.update = function () { if (self.isJumping) { self.y += self.jumpVelocity; self.jumpVelocity += self.gravity; // Yere inme kontrolü if (self.y >= self.groundY) { self.y = self.groundY; self.isJumping = false; self.jumpVelocity = 0; self.jumpCount = 0; // Yere inince tekrar sıfırla } } }; // Zıplama fonksiyonu self.jump = function () { if (self.jumpCount < self.maxJumps) { self.isJumping = true; self.jumpVelocity = self.jumpPower; self.jumpCount++; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x7ec850 // Orman yeşili }); /**** * Game Code ****/ // (Text2 kullanılacak, ayrıca asset gerek yok) // Puan göstergesi için // Saldırgan hayvan (örnek: ayı) // Engeller (kütük) // Zemin // Karakter (oyuncu) // Zemin var ground = LK.getAsset('ground', { anchorX: 0, anchorY: 1, x: 0, y: 2732 - 0 }); game.addChild(ground); // Runner karakteri var runner = new Runner(); runner.x = 420; runner.groundY = 2732 - 120; // Zemin yüksekliği kadar yukarıda runner.y = runner.groundY; game.addChild(runner); // Puan var score = 0; var scoreTxt = new Text2('0', { size: 120, fill: 0xFFF700 }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Engeller ve düşmanlar var obstacles = []; var enemies = []; // Oyun durumu var isGameOver = false; // Rastgele engel/düşman oluşturma zamanlayıcıları var nextObstacleTick = 60 + Math.floor(Math.random() * 60); // 1-2 sn arası var nextEnemyTick = 180 + Math.floor(Math.random() * 120); // 3-5 sn arası // Oyun alanı sınırları var groundY = 2732 - 120; // Oyun kontrolleri (tek dokunuşla zıplama) game.down = function (x, y, obj) { if (!isGameOver) { runner.jump(); } }; // Oyun güncelleme fonksiyonu game.update = function () { if (isGameOver) return; // Runner güncelle runner.update(); // Engelleri güncelle for (var i = obstacles.length - 1; i >= 0; i--) { var obs = obstacles[i]; obs.update(); // Çarpışma kontrolü if (runner.intersects(obs)) { // Oyun bitti isGameOver = true; LK.effects.flashScreen(0xff0000, 800); LK.showGameOver(); return; } // Ekran dışına çıktıysa sil if (obs.x < -200) { obs.destroy(); obstacles.splice(i, 1); // Puanı artır (engel başarıyla geçildi) score++; scoreTxt.setText(score); } } // Düşmanları güncelle for (var j = enemies.length - 1; j >= 0; j--) { var enemy = enemies[j]; enemy.update(); // Çarpışma kontrolü if (runner.intersects(enemy)) { // Oyun bitti isGameOver = true; LK.effects.flashScreen(0xff0000, 800); LK.showGameOver(); return; } // Ekran dışına çıktıysa sil if (enemy.x < -220) { enemy.destroy(); enemies.splice(j, 1); // Puanı artır (düşman başarıyla geçildi) score++; scoreTxt.setText(score); } } // Yeni engel oluşturma if (LK.ticks % nextObstacleTick === 0) { var obs = new Obstacle(); obs.x = 2048 + 100; obs.y = groundY; obstacles.push(obs); game.addChild(obs); // Sonraki engel için yeni zaman nextObstacleTick = 60 + Math.floor(Math.random() * 60); } // Yeni düşman oluşturma if (LK.ticks % nextEnemyTick === 0) { var enemy = new Enemy(); enemy.x = 2048 + 180; enemy.y = groundY; enemies.push(enemy); game.addChild(enemy); // Sonraki düşman için yeni zaman nextEnemyTick = 180 + Math.floor(Math.random() * 120); } }; // Oyun yeniden başlatıldığında sıfırlama game.on('reset', function () { // Tüm engelleri ve düşmanları sil for (var i = 0; i < obstacles.length; i++) { obstacles[i].destroy(); } for (var j = 0; j < enemies.length; j++) { enemies[j].destroy(); } obstacles = []; enemies = []; score = 0; scoreTxt.setText(score); isGameOver = false; runner.x = 420; runner.y = runner.groundY; runner.isJumping = false; runner.jumpVelocity = 0; runner.jumpCount = 0; nextObstacleTick = 60 + Math.floor(Math.random() * 60); nextEnemyTick = 180 + Math.floor(Math.random() * 120); });
===================================================================
--- original.js
+++ change.js
@@ -44,8 +44,11 @@
self.jumpVelocity = 0;
self.gravity = 3.2;
self.jumpPower = -54;
self.groundY = 0; // Oyun başında ayarlanacak
+ // Double jump için ek sayaç
+ self.jumpCount = 0;
+ self.maxJumps = 2;
// Güncelleme fonksiyonu
self.update = function () {
if (self.isJumping) {
self.y += self.jumpVelocity;
@@ -54,16 +57,18 @@
if (self.y >= self.groundY) {
self.y = self.groundY;
self.isJumping = false;
self.jumpVelocity = 0;
+ self.jumpCount = 0; // Yere inince tekrar sıfırla
}
}
};
// Zıplama fonksiyonu
self.jump = function () {
- if (!self.isJumping) {
+ if (self.jumpCount < self.maxJumps) {
self.isJumping = true;
self.jumpVelocity = self.jumpPower;
+ self.jumpCount++;
}
};
return self;
});
@@ -207,7 +212,8 @@
runner.x = 420;
runner.y = runner.groundY;
runner.isJumping = false;
runner.jumpVelocity = 0;
+ runner.jumpCount = 0;
nextObstacleTick = 60 + Math.floor(Math.random() * 60);
nextEnemyTick = 180 + Math.floor(Math.random() * 120);
});
\ No newline at end of file
Safarici bir runner yeşil üstlü. In-Game asset. 2d. High contrast. No shadows
Aslan. In-Game asset. 2d. High contrast. No shadows
Orman. In-Game asset. 2d. High contrast. No shadows
orman toprağı olsun zemin. In-Game asset. 2d. High contrast. No shadows
kuş. In-Game asset. 2d. High contrast. No shadows
Leopar. In-Game asset. 2d. High contrast. No shadows
ayı. In-Game asset. 2d. High contrast. No shadows
green fire. In-Game asset. 2d. High contrast. No shadows