Code edit (7 edits merged)
Please save this source code
User prompt
even more
User prompt
even more before
User prompt
turn 180 degree tree and turn mirrored tree 0 degree
User prompt
spawn tree and tube before it enters screen
User prompt
increase gap between mirrored tube and mirrored tree with unmirrored versions
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
i want you to spawn tree when tube comes little bit right of the middle of the screen
Code edit (1 edits merged)
Please save this source code
User prompt
spawn tube faster not velocity i want tube spawn earlier
Code edit (12 edits merged)
Please save this source code
User prompt
vaz geçtim ekranın ortasının biraz sağına gelince tree spawn olsun
User prompt
tree tube ekranın tam ortasına geldiğinde değilde biraz soluna geldiğinde spawn olsun azıcık ekranın ortasının soluna gelince
Code edit (1 edits merged)
Please save this source code
User prompt
make them 1.2 time faster
User prompt
make them 1.5 time faster
Code edit (1 edits merged)
Please save this source code
Code edit (5 edits merged)
Please save this source code
User prompt
tube ve tree nin velocitysini eşit düzeyde arttır
Code edit (1 edits merged)
Please save this source code
User prompt
spawn 1 tree after 1 second tube spawned
User prompt
create only 1 tree
User prompt
the gap between two trees are 2.1 second
User prompt
and make another tree spawn 2 second later
/**** * Classes ****/ // Character: Dokunulduğunda zıplar, yerçekimi devreye girer. var Character = Container.expand(function () { var self = Container.call(this); self.attachAsset('character', { anchorX: 0.5, anchorY: 0.5 }); self.zIndex = 99; self.velocityY = 0; self.gravity = 0.3; self.jumpStrength = -12; self.update = function () { if (gameStarted) { self.velocityY += self.gravity; self.y += self.velocityY; if (self.y > 2732 - 100) { self.y = 2732 - 100; self.velocityY = 0; } } }; self.jump = function () { self.velocityY = self.jumpStrength; }; }); // Tree: Ekranın ortasına geldiğinde tube spawn eder. var Tree = Container.expand(function () { var self = Container.call(this); var treeGraphics = self.attachAsset('tree', { anchorX: 0.5, anchorY: 0.5, width: 300, height: Math.floor(Math.random() * (4200 - 400 + 1)) + 400 }); self.zIndex = 5; self.velocityX = -3.6; self.spawned = false; // Sadece bir kez spawn yapabilsin self.prevX = self.x || 2048 + 50; self.update = function () { if (gameStarted) { self.x += self.velocityX; // Bu tree zincirin son elemanı ise ve ekranın ortasını geçiyorsa: if (self === lastSpawner && !self.spawned && self.prevX > centerX && self.x <= centerX) { self.spawned = true; var newTube = new Tube(); newTube.x = 2048 + 50; // Sağdan spawn newTube.y = 2732 - 150; game.addChild(newTube); lastSpawner = newTube; // Zincirin yeni lideri } self.prevX = self.x; // Aşağıdaki reset kodu kaldırıldı ki spawned flag’i resetlenmesin. // if (self.x < -300) { ... } } }; }); // Tube: Ekranın ortasına geldiğinde tree spawn eder. var Tube = Container.expand(function () { var self = Container.call(this); var tubeGraphics = self.attachAsset('tube', { anchorX: 0.5, anchorY: 0.5, width: 300, height: Math.floor(Math.random() * (4200 - 400 + 1)) + 400 }); self.zIndex = 5; self.velocityX = -3.6; self.spawned = false; // Sadece bir kez spawn yapabilsin self.prevX = self.x || 2048 + 50; self.update = function () { if (gameStarted) { self.x += self.velocityX; // Bu tube zincirin son elemanı ise ve ekranın ortasını geçiyorsa: if (self === lastSpawner && !self.spawned && self.prevX > centerX && self.x <= centerX) { self.spawned = true; var newTree = new Tree(); newTree.x = 2048 + 50; // Sağdan spawn newTree.y = 2732 - 150; game.addChild(newTree); lastSpawner = newTree; // Zincirin yeni lideri } self.prevX = self.x; // Tube'un kendi kendine resetlenip spawn olmasına neden olan kod kaldırıldı. // (if (self.x < -300) { ... }) bloğu silindi. } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var lastSpawner = null; // Zincirin spawn yapacak son nesnesi var gameStarted = false; var centerX = 2048 / 2; var sky = LK.getAsset('sky', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, tint: 0x000000 }); sky.zIndex = 0; game.addChild(sky); var background = LK.getAsset('background', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2 }); background.zIndex = 1; game.addChild(background); var ground = LK.getAsset('ground', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 - 5 }); ground.zIndex = 7; game.addChild(ground); var character = game.addChild(new Character()); character.x = 2048 / 2; character.y = 2732 / 2; // Dokunma olayı: Ekrana tıklayınca tube spawn edilir ve oyun başlar. game.down = function (x, y, obj) { if (!gameStarted) { gameStarted = true; // Oyun başladığında sadece bir tube spawn ediliyor. var initialTube = new Tube(); initialTube.x = 2048 + 50; initialTube.y = 2732 - 150; game.addChild(initialTube); lastSpawner = initialTube; } character.jump(); character.rotation = 0.1; LK.setTimeout(function () { character.rotation = 0; }, 200); }; 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
@@ -1,12 +1,11 @@
/****
* Classes
****/
-// Ekranın ortası
// Character: Dokunulduğunda zıplar, yerçekimi devreye girer.
var Character = Container.expand(function () {
var self = Container.call(this);
- var characterGraphics = self.attachAsset('character', {
+ self.attachAsset('character', {
anchorX: 0.5,
anchorY: 0.5
});
self.zIndex = 99;
@@ -17,9 +16,8 @@
if (gameStarted) {
self.velocityY += self.gravity;
self.y += self.velocityY;
if (self.y > 2732 - 100) {
- // Zemine çarpmayı engelle
self.y = 2732 - 100;
self.velocityY = 0;
}
}
@@ -27,9 +25,9 @@
self.jump = function () {
self.velocityY = self.jumpStrength;
};
});
-// Tree: Sadece hareket eder; tube spawn etme işlevi kaldırıldı.
+// Tree: Ekranın ortasına geldiğinde tube spawn eder.
var Tree = Container.expand(function () {
var self = Container.call(this);
var treeGraphics = self.attachAsset('tree', {
anchorX: 0.5,
@@ -38,22 +36,29 @@
height: Math.floor(Math.random() * (4200 - 400 + 1)) + 400
});
self.zIndex = 5;
self.velocityX = -3.6;
- // Artık spawn için kullanılacak flag ve prevX tanımı opsiyonel, sadece reset için bırakıldı.
+ self.spawned = false; // Sadece bir kez spawn yapabilsin
self.prevX = self.x || 2048 + 50;
self.update = function () {
if (gameStarted) {
self.x += self.velocityX;
- self.prevX = self.x;
- if (self.x < -300) {
- self.x = 2048 + 100;
- treeGraphics.height = Math.floor(Math.random() * (3900 - 600 + 1)) + 600;
+ // Bu tree zincirin son elemanı ise ve ekranın ortasını geçiyorsa:
+ if (self === lastSpawner && !self.spawned && self.prevX > centerX && self.x <= centerX) {
+ self.spawned = true;
+ var newTube = new Tube();
+ newTube.x = 2048 + 50; // Sağdan spawn
+ newTube.y = 2732 - 150;
+ game.addChild(newTube);
+ lastSpawner = newTube; // Zincirin yeni lideri
}
+ self.prevX = self.x;
+ // Aşağıdaki reset kodu kaldırıldı ki spawned flag’i resetlenmesin.
+ // if (self.x < -300) { ... }
}
};
});
-// Tube: Sağdan spawn olur; ekranın ortasına geçerken zincirin lideriyse bir Tree spawn eder.
+// Tube: Ekranın ortasına geldiğinde tree spawn eder.
var Tube = Container.expand(function () {
var self = Container.call(this);
var tubeGraphics = self.attachAsset('tube', {
anchorX: 0.5,
@@ -62,14 +67,14 @@
height: Math.floor(Math.random() * (4200 - 400 + 1)) + 400
});
self.zIndex = 5;
self.velocityX = -3.6;
- self.spawned = false; // Bu nesne spawn yapıp yapmadığını kontrol eder.
- self.prevX = self.x || 2048 + 50; // Önceki x konumunu tutar.
+ self.spawned = false; // Sadece bir kez spawn yapabilsin
+ self.prevX = self.x || 2048 + 50;
self.update = function () {
if (gameStarted) {
self.x += self.velocityX;
- // Zincirin lideri ve henüz spawn yapmamışsa; geçiş anı (önce center'ın sağında, sonra solunda) tespit ediliyor.
+ // Bu tube zincirin son elemanı ise ve ekranın ortasını geçiyorsa:
if (self === lastSpawner && !self.spawned && self.prevX > centerX && self.x <= centerX) {
self.spawned = true;
var newTree = new Tree();
newTree.x = 2048 + 50; // Sağdan spawn
@@ -77,13 +82,10 @@
game.addChild(newTree);
lastSpawner = newTree; // Zincirin yeni lideri
}
self.prevX = self.x;
- // Ekranın solundan çıktığında resetle.
- if (self.x < -300) {
- self.x = 2048 + 100;
- tubeGraphics.height = Math.floor(Math.random() * (3900 - 600 + 1)) + 600;
- }
+ // Tube'un kendi kendine resetlenip spawn olmasına neden olan kod kaldırıldı.
+ // (if (self.x < -300) { ... }) bloğu silindi.
}
};
});
@@ -96,15 +98,8 @@
/****
* Game Code
****/
-/****
-* Global Değişkenler
-****/
-/****
-* Game Kodları
-****/
-// Sky: En arka katman
var lastSpawner = null; // Zincirin spawn yapacak son nesnesi
var gameStarted = false;
var centerX = 2048 / 2;
var sky = LK.getAsset('sky', {
@@ -115,47 +110,44 @@
tint: 0x000000
});
sky.zIndex = 0;
game.addChild(sky);
-// Background: Sky'ın hemen üzerinde
var background = LK.getAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2
});
background.zIndex = 1;
game.addChild(background);
-// Ground: Tube ve Tree'den daha yüksek z-index
var ground = LK.getAsset('ground', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 - 5
});
ground.zIndex = 7;
game.addChild(ground);
-// Character: Ekranın tam ortasında başlar
var character = game.addChild(new Character());
character.x = 2048 / 2;
character.y = 2732 / 2;
// Dokunma olayı: Ekrana tıklayınca tube spawn edilir ve oyun başlar.
game.down = function (x, y, obj) {
if (!gameStarted) {
gameStarted = true;
+ // Oyun başladığında sadece bir tube spawn ediliyor.
var initialTube = new Tube();
initialTube.x = 2048 + 50;
initialTube.y = 2732 - 150;
game.addChild(initialTube);
- lastSpawner = initialTube; // Zincirin ilk elemanı
+ lastSpawner = initialTube;
}
character.jump();
character.rotation = 0.1;
LK.setTimeout(function () {
character.rotation = 0;
}, 200);
};
-// Oyun döngüsü: Her frame update fonksiyonlarını çağırır ve z-index sıralaması yapar.
game.update = function () {
game.children.forEach(function (child) {
if (child.update) {
child.update();