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