User prompt
Ağaçları büyüt arabadan büyük olsun
User prompt
Ağaç Yapraklarının boyutunu büyüt
User prompt
arka plana apaçlar falan ekle güzel bir yol olsun
User prompt
hala araba durmuyo frene basıldığında
User prompt
telefonda fren tuşu ve mağaza tuşu çalışmıyo tıklayınca mağaza butonuna mağaza açılmıyo bide fren butonuna tıklandığında araba durmuyo ayrıca mağaza butonu yeşil olsun
User prompt
fren butonu olsun sağ altta ve basınca araba dursun
User prompt
mağaza açılmıyo
User prompt
dükkan açılmıyo biraz daha sol tarafa kaydır
User prompt
dükkanı açma butonu durdurma butonun altında olsun
User prompt
direksiyonu ekranın alt orta kısnına koy ve araba direksiyon ile kontrol edilsin
User prompt
durdurma butonun üstüne tıklandığında durma menüsü gelsin
User prompt
oyunu durdurma menüsü ekle
User prompt
diğer arabaların üstünde altın olmasın
User prompt
paralar biraz büyük olsun ayrıca yol ayrımlarıda olsun direksiyon ekle
User prompt
direksiyon d ve r olarak vites ve paralar ve dükkan ekle
Code edit (1 edits merged)
Please save this source code
User prompt
Araba Yarışı: Sonsuz Yol
User prompt
araba oyunu olsun
User prompt
yollar sağ sola ayrılsın sadece düz yol gitmeyelim cadde olsun yani
User prompt
yollarda para olsun bir dükkan simgesi olsun ve kazandığımız paralarla dükkandan yeni arabalar satılsın onları parayla alabilelim ayrıca sağ üstte kaç para topladığımız dol üstte ise ne kadar yol gittiğimiz olsun
User prompt
gaz ve fren olsun ayrıca direksiyonda olsun gaz ve fren ekranın sağ tarafında olsun direksiyon ise sol tarafta viteslerde gaz ve frenin üstünde olsun
Initial prompt
araba oyunu yap oyunda r ve d viteslerini yap sokaklar olsun ve oyun hep devam etsin
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Oyuncu arabası var Car = Container.expand(function () { var self = Container.call(this); var carAsset = self.attachAsset('car', { anchorX: 0.5, anchorY: 0.5 }); self.width = carAsset.width; self.height = carAsset.height; return self; }); // Engel var Obstacle = Container.expand(function () { var self = Container.call(this); var obsAsset = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 0.5 }); self.width = obsAsset.width; self.height = obsAsset.height; self.speed = 18; // Başlangıç hızı, oyun ilerledikçe artacak self.update = function () { self.y += self.speed; }; return self; }); // Yol çizgisi var RoadLine = Container.expand(function () { var self = Container.call(this); var lineAsset = self.attachAsset('roadLine', { anchorX: 0.5, anchorY: 0.5 }); self.width = lineAsset.width; self.height = lineAsset.height; self.speed = 18; self.update = function () { self.y += self.speed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x222222 }); /**** * Game Code ****/ // Engel için kırmızı kutu // Yol çizgisi için ince uzun kutu // Araba (oyuncu) için kutu şeklinde bir asset // Oyun alanı boyutları var GAME_WIDTH = 2048; var GAME_HEIGHT = 2732; // Yolun genişliği (ekranın ortasında) var ROAD_WIDTH = 900; var ROAD_X = (GAME_WIDTH - ROAD_WIDTH) / 2; // Arabayı ve engelleri tutan değişkenler var car; var obstacles = []; var roadLines = []; var score = 0; var scoreTxt; var dragNode = null; var lastGameX = 0; var gameSpeed = 18; var ticksSinceStart = 0; var spawnInterval = 60; // Engel oluşturma aralığı (frame cinsinden) var minObstacleGap = 400; // Engeller arası minimum mesafe // Skor gösterimi scoreTxt = new Text2('0', { size: 120, fill: "#fff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Arabayı oluştur ve konumlandır car = new Car(); game.addChild(car); car.x = GAME_WIDTH / 2; car.y = GAME_HEIGHT - 500; // Yol çizgilerini oluştur for (var i = 0; i < 7; i++) { var line = new RoadLine(); line.x = GAME_WIDTH / 2; line.y = i * 400 + 200; roadLines.push(line); game.addChild(line); } // Oyun güncelleme fonksiyonu game.update = function () { ticksSinceStart++; // Yol çizgilerini hareket ettir ve döngüsel olarak tekrar yukarıya al for (var i = 0; i < roadLines.length; i++) { var line = roadLines[i]; line.speed = gameSpeed; line.update(); if (line.y - line.height / 2 > GAME_HEIGHT) { line.y -= 7 * 400; } } // Engelleri hareket ettir for (var i = obstacles.length - 1; i >= 0; i--) { var obs = obstacles[i]; obs.speed = gameSpeed; obs.update(); // Ekrandan çıktıysa sil if (obs.y - obs.height / 2 > GAME_HEIGHT + 100) { obs.destroy(); obstacles.splice(i, 1); score++; scoreTxt.setText(score); continue; } // Çarpışma kontrolü if (car.intersects(obs)) { LK.effects.flashScreen(0xff0000, 800); LK.showGameOver(); return; } } // Engel oluşturma (aralıkla) if (ticksSinceStart % spawnInterval === 0) { var obs = new Obstacle(); // Rastgele x konumu, yolun dışına çıkmasın var minX = ROAD_X + obs.width / 2 + 30; var maxX = ROAD_X + ROAD_WIDTH - obs.width / 2 - 30; obs.x = minX + Math.random() * (maxX - minX); obs.y = -obs.height / 2; obstacles.push(obs); game.addChild(obs); } // Zorluk arttırma: zamanla hız ve engel sıklığı artar if (ticksSinceStart % 300 === 0 && gameSpeed < 38) { gameSpeed += 2; if (spawnInterval > 28) spawnInterval -= 4; } // Skor güncellemesi (her frame değil, engel geçince artıyor) }; // Sürükleme işlemleri game.down = function (x, y, obj) { // Arabaya dokunulmuşsa veya ekrana dokunulmuşsa sürüklemeye başla if (x > car.x - car.width / 2 && x < car.x + car.width / 2 && y > car.y - car.height / 2 && y < car.y + car.height / 2) { dragNode = car; lastGameX = x; } else if (y > GAME_HEIGHT / 2 // Sadece alt yarıda sürüklemeye izin ver ) { dragNode = car; lastGameX = x; } }; game.move = function (x, y, obj) { if (dragNode === car) { // Sürükleme mesafesi var dx = x - lastGameX; lastGameX = x; car.x += dx; // Yol dışına çıkmasın var minX = ROAD_X + car.width / 2 + 10; var maxX = ROAD_X + ROAD_WIDTH - car.width / 2 - 10; if (car.x < minX) car.x = minX; if (car.x > maxX) car.x = maxX; } }; game.up = function (x, y, obj) { dragNode = null; }; // Oyun başında skor sıfırla score = 0; scoreTxt.setText(score);
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,182 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+// Oyuncu arabası
+var Car = Container.expand(function () {
+ var self = Container.call(this);
+ var carAsset = self.attachAsset('car', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.width = carAsset.width;
+ self.height = carAsset.height;
+ return self;
+});
+// Engel
+var Obstacle = Container.expand(function () {
+ var self = Container.call(this);
+ var obsAsset = self.attachAsset('obstacle', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.width = obsAsset.width;
+ self.height = obsAsset.height;
+ self.speed = 18; // Başlangıç hızı, oyun ilerledikçe artacak
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+// Yol çizgisi
+var RoadLine = Container.expand(function () {
+ var self = Container.call(this);
+ var lineAsset = self.attachAsset('roadLine', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.width = lineAsset.width;
+ self.height = lineAsset.height;
+ self.speed = 18;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x222222
+});
+
+/****
+* Game Code
+****/
+// Engel için kırmızı kutu
+// Yol çizgisi için ince uzun kutu
+// Araba (oyuncu) için kutu şeklinde bir asset
+// Oyun alanı boyutları
+var GAME_WIDTH = 2048;
+var GAME_HEIGHT = 2732;
+// Yolun genişliği (ekranın ortasında)
+var ROAD_WIDTH = 900;
+var ROAD_X = (GAME_WIDTH - ROAD_WIDTH) / 2;
+// Arabayı ve engelleri tutan değişkenler
+var car;
+var obstacles = [];
+var roadLines = [];
+var score = 0;
+var scoreTxt;
+var dragNode = null;
+var lastGameX = 0;
+var gameSpeed = 18;
+var ticksSinceStart = 0;
+var spawnInterval = 60; // Engel oluşturma aralığı (frame cinsinden)
+var minObstacleGap = 400; // Engeller arası minimum mesafe
+// Skor gösterimi
+scoreTxt = new Text2('0', {
+ size: 120,
+ fill: "#fff"
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Arabayı oluştur ve konumlandır
+car = new Car();
+game.addChild(car);
+car.x = GAME_WIDTH / 2;
+car.y = GAME_HEIGHT - 500;
+// Yol çizgilerini oluştur
+for (var i = 0; i < 7; i++) {
+ var line = new RoadLine();
+ line.x = GAME_WIDTH / 2;
+ line.y = i * 400 + 200;
+ roadLines.push(line);
+ game.addChild(line);
+}
+// Oyun güncelleme fonksiyonu
+game.update = function () {
+ ticksSinceStart++;
+ // Yol çizgilerini hareket ettir ve döngüsel olarak tekrar yukarıya al
+ for (var i = 0; i < roadLines.length; i++) {
+ var line = roadLines[i];
+ line.speed = gameSpeed;
+ line.update();
+ if (line.y - line.height / 2 > GAME_HEIGHT) {
+ line.y -= 7 * 400;
+ }
+ }
+ // Engelleri hareket ettir
+ for (var i = obstacles.length - 1; i >= 0; i--) {
+ var obs = obstacles[i];
+ obs.speed = gameSpeed;
+ obs.update();
+ // Ekrandan çıktıysa sil
+ if (obs.y - obs.height / 2 > GAME_HEIGHT + 100) {
+ obs.destroy();
+ obstacles.splice(i, 1);
+ score++;
+ scoreTxt.setText(score);
+ continue;
+ }
+ // Çarpışma kontrolü
+ if (car.intersects(obs)) {
+ LK.effects.flashScreen(0xff0000, 800);
+ LK.showGameOver();
+ return;
+ }
+ }
+ // Engel oluşturma (aralıkla)
+ if (ticksSinceStart % spawnInterval === 0) {
+ var obs = new Obstacle();
+ // Rastgele x konumu, yolun dışına çıkmasın
+ var minX = ROAD_X + obs.width / 2 + 30;
+ var maxX = ROAD_X + ROAD_WIDTH - obs.width / 2 - 30;
+ obs.x = minX + Math.random() * (maxX - minX);
+ obs.y = -obs.height / 2;
+ obstacles.push(obs);
+ game.addChild(obs);
+ }
+ // Zorluk arttırma: zamanla hız ve engel sıklığı artar
+ if (ticksSinceStart % 300 === 0 && gameSpeed < 38) {
+ gameSpeed += 2;
+ if (spawnInterval > 28) spawnInterval -= 4;
+ }
+ // Skor güncellemesi (her frame değil, engel geçince artıyor)
+};
+// Sürükleme işlemleri
+game.down = function (x, y, obj) {
+ // Arabaya dokunulmuşsa veya ekrana dokunulmuşsa sürüklemeye başla
+ if (x > car.x - car.width / 2 && x < car.x + car.width / 2 && y > car.y - car.height / 2 && y < car.y + car.height / 2) {
+ dragNode = car;
+ lastGameX = x;
+ } else if (y > GAME_HEIGHT / 2 // Sadece alt yarıda sürüklemeye izin ver
+ ) {
+ dragNode = car;
+ lastGameX = x;
+ }
+};
+game.move = function (x, y, obj) {
+ if (dragNode === car) {
+ // Sürükleme mesafesi
+ var dx = x - lastGameX;
+ lastGameX = x;
+ car.x += dx;
+ // Yol dışına çıkmasın
+ var minX = ROAD_X + car.width / 2 + 10;
+ var maxX = ROAD_X + ROAD_WIDTH - car.width / 2 - 10;
+ if (car.x < minX) car.x = minX;
+ if (car.x > maxX) car.x = maxX;
+ }
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+// Oyun başında skor sıfırla
+score = 0;
+scoreTxt.setText(score);
\ No newline at end of file