User prompt
Carpmaya gorsel efekt ekle
User prompt
Carpmaya bir kaza animasyonu ekle
User prompt
Oyun icinde her zaman calan bir muzik olsun
User prompt
Her iki taraftaki agac larin alyinda bir bolge olsun ve asseti de olsun
User prompt
Yol bir koprunun ustunde olsun ve bir arka plan ekle ve bunlari ozellestirmem icin asset leri olsun
User prompt
Muzik ve ses ekle
User prompt
Dusman araba cesitlerine 3 tane arttir
User prompt
Dusman arabalari 3 tane arttir ve onlari araba secme menusune ekle
User prompt
Araba cesitliligini 3 tane arttir ve onlari araba secme menu sune de ekle
User prompt
Menudeyken de oyun durmali
User prompt
Araba secimi dugmesi biraz daha asagida olsun ve araba secme ekranindayken oyun durmali ve araba secince oyun baslamali
User prompt
Menu ye baska bir dugme daha ekle ve bunun da asseti olmali ve bu dugme ye basinca araba secme ekranina gitmeli be araba secme ekraninda dusmanarabalar dahil butun arabalar olsun ve secilen araba oyuncu arabasi olsun
User prompt
Play dugmesi nin ustundeki yaziyi sil
User prompt
Bir menu yap be bu menu de bir play dugmesi olsun ve bu dugmeyi ozellestire bilmem icin asseti olmali
User prompt
Basla ve araba sec butonlari olan bir menu ekle
User prompt
Menu de basla ve araba sec buton lari olsun
User prompt
Bir menu yap
User prompt
Bir araba sec butonu olsun
User prompt
Menuyu kaldir
User prompt
Araba sec butonu dogru calismiyor
User prompt
Araba sece basinca baska bir menu acilsin ve o menu de samand butonu olsun ve ona basinca dusmancarblue oyuncuarabasi nin yerini alsin
User prompt
Menu de birde araba sec butonu olsun ve ona basinca dusman arabalari ve oyuncu arabasinda olusab bir sayfa olsun ve hangi araba secilirse o araba oyuncu arabasi olsun ve ok tusuna basinca oyun baslasin
User prompt
En basta menu olsun
User prompt
Agaclar daha buyuk olsun
User prompt
En sag ve en sol taraflarda agac olmali
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Düz ve ters giden engel arabalar var EnemyCar = Container.expand(function () { var self = Container.call(this); // Farklı tipte araba şekilleri ve renkleri var carTypes = [{ asset: 'enemyCar', shape: 'box' }, { asset: 'enemyCarRed', shape: 'box' }, { asset: 'enemyCarBlue', shape: 'box' }, { asset: 'enemyCarYellow', shape: 'box' }, { asset: 'enemyCarGreen', shape: 'ellipse' }, { asset: 'enemyCarPurple', shape: 'box' }, { asset: 'enemyCar', shape: 'ellipse' }, { asset: 'enemyCarRed', shape: 'ellipse' }, { asset: 'enemyCarBlue', shape: 'ellipse' }, { asset: 'enemyCarYellow', shape: 'ellipse' }, { asset: 'enemyCarGreen', shape: 'box' }, { asset: 'enemyCarPurple', shape: 'ellipse' }, { asset: 'enemyCar', shape: 'box' }, { asset: 'enemyCarRed', shape: 'box' }, { asset: 'enemyCarBlue', shape: 'box' }, { asset: 'enemyCarYellow', shape: 'box' }, // 10 yeni çeşit { asset: 'enemyCarOrange', shape: 'box' }, { asset: 'enemyCarPink', shape: 'ellipse' }, { asset: 'enemyCarCyan', shape: 'box' }, { asset: 'enemyCarBlack', shape: 'ellipse' }, { asset: 'enemyCarWhite', shape: 'box' }, { asset: 'enemyCarBrown', shape: 'ellipse' }, { asset: 'enemyCarSilver', shape: 'box' }, { asset: 'enemyCarGold', shape: 'ellipse' }, { asset: 'enemyCarNavy', shape: 'box' }, { asset: 'enemyCarLime', shape: 'ellipse' }]; // If selectedEnemyCarAssets is set, filter carTypes if (typeof selectedEnemyCarAssets !== 'undefined' && selectedEnemyCarAssets && selectedEnemyCarAssets.length > 0) { var filtered = []; for (var i = 0; i < carTypes.length; i++) { if (selectedEnemyCarAssets.indexOf(carTypes[i].asset) !== -1) { filtered.push(carTypes[i]); } } if (filtered.length > 0) carTypes = filtered; } // Rastgele bir tip seç var typeIdx = Math.floor(Math.random() * carTypes.length); var carType = carTypes[typeIdx]; var car = self.attachAsset(carType.asset, { anchorX: 0.5, anchorY: 0.5 }); self.width = car.width; self.height = car.height; self.speed = 18; // Varsayılan hız (aşağı) self.direction = 1; // 1: aşağı, -1: yukarı (ters) self.update = function () { self.y += self.speed * self.direction; }; return self; }); // Oyuncu arabası var PlayerCar = Container.expand(function () { var self = Container.call(this); // Use selectedPlayerCarAsset if set, fallback to 'playerCar' var asset = typeof selectedPlayerCarAsset !== 'undefined' && selectedPlayerCarAsset ? selectedPlayerCarAsset : 'playerCar'; var car = self.attachAsset(asset, { anchorX: 0.5, anchorY: 0.5 }); self.width = car.width; self.height = car.height; return self; }); // Yol çizgisi (hareketli) var RoadLine = Container.expand(function () { var self = Container.call(this); var line = self.attachAsset('roadLine', { anchorX: 0.5, anchorY: 0.5 }); self.width = line.width; self.height = line.height; self.speed = 24; self.update = function () { self.y += self.speed; }; return self; }); // Yan ağaçlar (sol ve sağ) var TreeLeft = Container.expand(function () { var self = Container.call(this); var tree = self.attachAsset('treeLeft', { anchorX: 0.5, anchorY: 0.5 }); self.width = tree.width; self.height = tree.height; self.speed = 24; self.update = function () { self.y += self.speed; }; return self; }); var TreeRight = Container.expand(function () { var self = Container.call(this); var tree = self.attachAsset('treeRight', { anchorX: 0.5, anchorY: 0.5 }); self.width = tree.width; self.height = tree.height; self.speed = 24; self.update = function () { self.y += self.speed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x222222 }); /**** * Game Code ****/ // 10 yeni çeşit için ek varlıklar // Oyun alanı boyutları // Oyuncu arabası (kırmızı kutu) // Engeller (gri kutu) // Yol çizgisi (beyaz ince kutu) // Yan ağaçlar için basit şekil (dilerseniz image ile de değiştirebilirsiniz) var GAME_WIDTH = 2048; var GAME_HEIGHT = 2732; // Yolun genişliği ve şeritler var ROAD_WIDTH = 1200; var ROAD_LEFT = (GAME_WIDTH - ROAD_WIDTH) / 2; var ROAD_RIGHT = ROAD_LEFT + ROAD_WIDTH; // Şerit sayısı ve pozisyonları var LANE_COUNT = 4; var LANE_WIDTH = ROAD_WIDTH / LANE_COUNT; var LANE_X = [ROAD_LEFT + LANE_WIDTH * 0.5, ROAD_LEFT + LANE_WIDTH * 1.5, ROAD_LEFT + LANE_WIDTH * 2.5, ROAD_LEFT + LANE_WIDTH * 3.5]; // Yol çizgileri var roadLines = []; // Yan ağaçlar var leftTrees = []; var rightTrees = []; function spawnRoadLines() { // Her şeridin ortasına, aralıklı çizgiler for (var lane = 0; lane < LANE_COUNT; lane++) { for (var i = 0; i < 8; i++) { var line = new RoadLine(); line.x = ROAD_LEFT + LANE_WIDTH * (lane + 0.5); line.y = i * 400; roadLines.push(line); game.addChild(line); } } // Sol ve sağ kenara ağaçlar for (var i = 0; i < 8; i++) { var leftTree = new TreeLeft(); leftTree.x = ROAD_LEFT - 120; // Sol kenarın biraz dışında leftTree.y = i * 400; leftTrees.push(leftTree); game.addChild(leftTree); var rightTree = new TreeRight(); rightTree.x = ROAD_RIGHT + 120; // Sağ kenarın biraz dışında rightTree.y = i * 400; rightTrees.push(rightTree); game.addChild(rightTree); } } spawnRoadLines(); // Oyuncu arabası var player = new PlayerCar(); player.lane = 1; // Ortadaki şerit player.x = LANE_X[player.lane]; player.y = GAME_HEIGHT - 500; game.addChild(player); // Engeller var enemyCars = []; var ENEMY_SPAWN_INTERVAL_BASE = 60; // Başlangıçta 60 tickte bir (1 sn) var ENEMY_SPAWN_INTERVAL_MIN = 18; // Minimum 0.3 sn (18 tick) var enemySpawnTick = 0; function getEnemySpawnInterval() { // Mesafe arttıkça interval azalır, minimuma kadar iner // 0-1000 arası 60, 1000'den sonra 30'a kadar iner, 3000'den sonra 18'e kadar iner if (distance < 1000) return ENEMY_SPAWN_INTERVAL_BASE; if (distance < 3000) return Math.max(ENEMY_SPAWN_INTERVAL_BASE - Math.floor((distance - 1000) / 40), 30); return ENEMY_SPAWN_INTERVAL_MIN; } // Skor var distance = 0; var scoreTxt = new Text2('0', { size: 120, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // En yüksek skor (oyun başında sıfır) var highScore = 0; var highScoreTxt = new Text2('', { size: 60, fill: 0xFFFF00 }); highScoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(highScoreTxt); function updateHighScore() { if (distance > highScore) highScore = distance; highScoreTxt.setText('En Yüksek: ' + highScore); } updateHighScore(); // Sürükleme için var dragStartX = null; var dragStartLane = null; // Oyun bitti mi? var isGameOver = false; // Remove menu and overlays, start game immediately var isMenu = false; var isCarSelect = false; var selectedPlayerCarAsset = 'playerCar'; // default var selectedEnemyCarAssets = []; // if empty, all types used // Car asset list for selection (player and enemy) var allCarAssets = ['playerCar', 'enemyCar', 'enemyCarRed', 'enemyCarBlue', 'enemyCarYellow', 'enemyCarGreen', 'enemyCarPurple', 'enemyCarOrange', 'enemyCarPink', 'enemyCarCyan', 'enemyCarBlack', 'enemyCarWhite', 'enemyCarBrown', 'enemyCarSilver', 'enemyCarGold', 'enemyCarNavy', 'enemyCarLime']; // No overlays, just handle tap for lane change game.down = function (x, y, obj) { if (x > GAME_WIDTH / 2) { // Sağ tıklandı, sağa bir şerit movePlayerToLane(player.lane + 1); } else { // Sol tıklandı, sola bir şerit movePlayerToLane(player.lane - 1); } }; // Oyun hareketleri function movePlayerToLane(lane) { if (lane < 0) lane = 0; if (lane > LANE_COUNT - 1) lane = LANE_COUNT - 1; if (lane !== player.lane) { player.lane = lane; // Yumuşak geçiş animasyonu tween(player, { x: LANE_X[lane] }, { duration: 120, easing: tween.cubicOut }); } } // Dokunma ile sağ/sola bir şerit hareket // (removed duplicate game.down, handled above with overlay forwarding) game.move = function (x, y, obj) { // Hareket gerekmez, tap ile kontrol }; game.up = function (x, y, obj) { // Gerekli değil, tap ile kontrol }; // Çarpışma kontrolü function checkCollision(a, b) { // Basit dikdörtgen çarpışma return Math.abs(a.x - b.x) < (a.width + b.width) / 2 - 20 && Math.abs(a.y - b.y) < (a.height + b.height) / 2 - 20; } // Oyun güncelleme game.update = function () { if (isGameOver) return; // Skor: mesafe arttıkça artar distance += 1; scoreTxt.setText(distance); updateHighScore(); // Yol çizgilerini hareket ettir for (var i = 0; i < roadLines.length; i++) { var line = roadLines[i]; line.update(); if (line.y > GAME_HEIGHT + 100) { line.y -= 8 * 400; } } // Sol ağaçları hareket ettir for (var i = 0; i < leftTrees.length; i++) { var tree = leftTrees[i]; tree.update(); if (tree.y > GAME_HEIGHT + 100) { tree.y -= 8 * 400; } } // Sağ ağaçları hareket ettir for (var i = 0; i < rightTrees.length; i++) { var tree = rightTrees[i]; tree.update(); if (tree.y > GAME_HEIGHT + 100) { tree.y -= 8 * 400; } } // Engelleri hareket ettir for (var i = enemyCars.length - 1; i >= 0; i--) { var enemy = enemyCars[i]; enemy.update(); // Ekrandan çıktıysa sil if (enemy.direction === 1 && enemy.y > GAME_HEIGHT + 200 || enemy.direction === -1 && enemy.y < -200) { enemy.destroy(); enemyCars.splice(i, 1); continue; } // Çarpışma kontrolü if (checkCollision(player, enemy)) { isGameOver = true; LK.effects.flashScreen(0xff0000, 800); LK.showGameOver(); return; } } // Yeni engel oluştur enemySpawnTick++; var currentSpawnInterval = getEnemySpawnInterval(); if (enemySpawnTick >= currentSpawnInterval) { enemySpawnTick = 0; // Rastgele bir veya iki şeride engel koy var lanes = [0, 1, 2, 3]; // %60 tek araba, %40 iki araba var count = Math.random() < 0.6 ? 1 : 2; for (var j = 0; j < count; j++) { if (lanes.length === 0) break; var idx = Math.floor(Math.random() * lanes.length); var lane = lanes[idx]; lanes.splice(idx, 1); var enemy = new EnemyCar(); enemy.x = LANE_X[lane]; // Soldaki iki şerit (0 ve 1) için de aşağı doğru giden araba oluştur enemy.y = -200; enemy.direction = 1; // Aşağı hareket game.addChild(enemy); enemyCars.push(enemy); } } }; // Oyun yeniden başlatıldığında sıfırla game.on('reset', function () { // Arabaları ve çizgileri sil for (var i = 0; i < enemyCars.length; i++) { enemyCars[i].destroy(); } enemyCars = []; distance = 0; scoreTxt.setText('0'); isGameOver = false; player.lane = 1; player.x = LANE_X[1]; player.y = GAME_HEIGHT - 500; updateHighScore(); // Menüye geri dön isMenu = false; isCarSelect = false; // Reset car selection to default selectedPlayerCarAsset = 'playerCar'; selectedEnemyCarAssets = []; });
===================================================================
--- original.js
+++ change.js
@@ -275,334 +275,17 @@
var dragStartX = null;
var dragStartLane = null;
// Oyun bitti mi?
var isGameOver = false;
-// --- MENU OVERLAY EKLE ---
-var isMenu = true;
+// Remove menu and overlays, start game immediately
+var isMenu = false;
var isCarSelect = false;
var selectedPlayerCarAsset = 'playerCar'; // default
var selectedEnemyCarAssets = []; // if empty, all types used
// Car asset list for selection (player and enemy)
var allCarAssets = ['playerCar', 'enemyCar', 'enemyCarRed', 'enemyCarBlue', 'enemyCarYellow', 'enemyCarGreen', 'enemyCarPurple', 'enemyCarOrange', 'enemyCarPink', 'enemyCarCyan', 'enemyCarBlack', 'enemyCarWhite', 'enemyCarBrown', 'enemyCarSilver', 'enemyCarGold', 'enemyCarNavy', 'enemyCarLime'];
-// --- Main Menu Overlay ---
-var menuOverlay = new Container();
-var menuBg = LK.getAsset('roadLine', {
- width: 1200,
- height: 900,
- color: 0x222222,
- anchorX: 0.5,
- anchorY: 0.5
-});
-menuBg.width = 1200;
-menuBg.height = 900;
-menuBg.x = GAME_WIDTH / 2;
-menuBg.y = GAME_HEIGHT / 2;
-menuOverlay.addChild(menuBg);
-var menuTitle = new Text2('ARABA YARIŞI', {
- size: 180,
- fill: 0xFFFFFF
-});
-menuTitle.anchor.set(0.5, 0.5);
-menuTitle.x = GAME_WIDTH / 2;
-menuTitle.y = GAME_HEIGHT / 2 - 200;
-menuOverlay.addChild(menuTitle);
-var menuStart = new Text2('BAŞLA', {
- size: 120,
- fill: 0x00FF00
-});
-menuStart.anchor.set(0.5, 0.5);
-menuStart.x = GAME_WIDTH / 2;
-menuStart.y = GAME_HEIGHT / 2 + 100;
-menuOverlay.addChild(menuStart);
-var menuInfo = new Text2('Sağa/Sola dokun: Araba şerit değiştirir', {
- size: 60,
- fill: 0xFFFFFF
-});
-menuInfo.anchor.set(0.5, 0.5);
-menuInfo.x = GAME_WIDTH / 2;
-menuInfo.y = GAME_HEIGHT / 2 + 250;
-menuOverlay.addChild(menuInfo);
-// --- Car Select Button ---
-var carSelectBtn = new Text2('ARABA SEÇ', {
- size: 90,
- fill: 0x00BFFF
-});
-carSelectBtn.anchor.set(0.5, 0.5);
-carSelectBtn.x = GAME_WIDTH / 2;
-carSelectBtn.y = GAME_HEIGHT / 2 + 300;
-menuOverlay.addChild(carSelectBtn);
-game.addChild(menuOverlay);
-// --- Car Selection Overlay ---
-var carSelectOverlay = new Container();
-carSelectOverlay.visible = false;
-var carSelBg = LK.getAsset('roadLine', {
- width: 1400,
- height: 1200,
- color: 0x222222,
- anchorX: 0.5,
- anchorY: 0.5
-});
-carSelBg.width = 1400;
-carSelBg.height = 1200;
-carSelBg.x = GAME_WIDTH / 2;
-carSelBg.y = GAME_HEIGHT / 2;
-carSelectOverlay.addChild(carSelBg);
-var carSelTitle = new Text2('Araba Seç', {
- size: 120,
- fill: 0xFFFFFF
-});
-carSelTitle.anchor.set(0.5, 0.5);
-carSelTitle.x = GAME_WIDTH / 2;
-carSelTitle.y = GAME_HEIGHT / 2 - 500;
-carSelectOverlay.addChild(carSelTitle);
-// --- Car grid ---
-var carGrid = [];
-var carGridCols = 4;
-var carGridRows = Math.ceil(allCarAssets.length / carGridCols);
-var carGridStartX = GAME_WIDTH / 2 - (carGridCols - 1) * 220;
-var carGridStartY = GAME_HEIGHT / 2 - 250;
-var carGridCellW = 320;
-var carGridCellH = 260;
-var carGridSelectedIdx = 0;
-for (var i = 0; i < allCarAssets.length; i++) {
- var asset = allCarAssets[i];
- var col = i % carGridCols;
- var row = Math.floor(i / carGridCols);
- var carCont = new Container();
- carCont.x = carGridStartX + col * carGridCellW;
- carCont.y = carGridStartY + row * carGridCellH;
- var carImg = LK.getAsset(asset, {
- anchorX: 0.5,
- anchorY: 0.5
- });
- carImg.width = 180;
- carImg.height = 120;
- carCont.addChild(carImg);
- // Border for selection
- var border = LK.getAsset('roadLine', {
- width: 200,
- height: 140,
- color: 0x00FF00,
- anchorX: 0.5,
- anchorY: 0.5
- });
- border.visible = false;
- carCont.addChild(border);
- carCont._carAsset = asset;
- carCont._border = border;
- carCont._idx = i;
- carGrid.push(carCont);
- carSelectOverlay.addChild(carCont);
-}
-function updateCarGridSelection(idx) {
- for (var i = 0; i < carGrid.length; i++) {
- carGrid[i]._border.visible = i === idx;
- }
-}
-updateCarGridSelection(carGridSelectedIdx);
-// --- OK Button ---
-var carSelOkBtn = new Text2('OK', {
- size: 100,
- fill: 0x00FF00
-});
-carSelOkBtn.anchor.set(0.5, 0.5);
-carSelOkBtn.x = GAME_WIDTH / 2;
-carSelOkBtn.y = GAME_HEIGHT / 2 + 500;
-carSelectOverlay.addChild(carSelOkBtn);
-// --- Back Button ---
-var carSelBackBtn = new Text2('GERİ', {
- size: 80,
- fill: 0xFF3333
-});
-carSelBackBtn.anchor.set(0.5, 0.5);
-carSelBackBtn.x = GAME_WIDTH / 2 - 300;
-carSelBackBtn.y = GAME_HEIGHT / 2 + 500;
-carSelectOverlay.addChild(carSelBackBtn);
-// --- ŞAMANDIRA Button ---
-var samandiraBtn = new Text2('ŞAMANDIRA', {
- size: 80,
- fill: 0xFFA500
-});
-samandiraBtn.anchor.set(0.5, 0.5);
-samandiraBtn.x = GAME_WIDTH / 2 + 300;
-samandiraBtn.y = GAME_HEIGHT / 2 + 500;
-carSelectOverlay.addChild(samandiraBtn);
-// --- Samandıra Menu Overlay ---
-var samandiraOverlay = new Container();
-samandiraOverlay.visible = false;
-var samBg = LK.getAsset('roadLine', {
- width: 1000,
- height: 800,
- color: 0x222222,
- anchorX: 0.5,
- anchorY: 0.5
-});
-samBg.width = 1000;
-samBg.height = 800;
-samBg.x = GAME_WIDTH / 2;
-samBg.y = GAME_HEIGHT / 2;
-samandiraOverlay.addChild(samBg);
-var samTitle = new Text2('Şamandıra Modu', {
- size: 100,
- fill: 0xFFFFFF
-});
-samTitle.anchor.set(0.5, 0.5);
-samTitle.x = GAME_WIDTH / 2;
-samTitle.y = GAME_HEIGHT / 2 - 250;
-samandiraOverlay.addChild(samTitle);
-var samDesc = new Text2('Düşman arabaları mavi, oyuncu arabası kırmızı olur.', {
- size: 60,
- fill: 0xFFFFFF
-});
-samDesc.anchor.set(0.5, 0.5);
-samDesc.x = GAME_WIDTH / 2;
-samDesc.y = GAME_HEIGHT / 2 - 100;
-samandiraOverlay.addChild(samDesc);
-var samOkBtn = new Text2('TAMAM', {
- size: 90,
- fill: 0x00FF00
-});
-samOkBtn.anchor.set(0.5, 0.5);
-samOkBtn.x = GAME_WIDTH / 2;
-samOkBtn.y = GAME_HEIGHT / 2 + 200;
-samandiraOverlay.addChild(samOkBtn);
-var samBackBtn = new Text2('GERİ', {
- size: 70,
- fill: 0xFF3333
-});
-samBackBtn.anchor.set(0.5, 0.5);
-samBackBtn.x = GAME_WIDTH / 2 - 250;
-samBackBtn.y = GAME_HEIGHT / 2 + 200;
-samandiraOverlay.addChild(samBackBtn);
-game.addChild(carSelectOverlay);
-game.addChild(samandiraOverlay);
-// --- Car selection overlay touch logic ---
-carSelectOverlay.down = function (x, y, obj) {
- // Check if a car is tapped
- for (var i = 0; i < carGrid.length; i++) {
- var carCont = carGrid[i];
- var local = carCont.toLocal({
- x: x,
- y: y
- });
- if (Math.abs(local.x) < 100 && Math.abs(local.y) < 70) {
- carGridSelectedIdx = i;
- updateCarGridSelection(i);
- break;
- }
- }
- // OK button
- var okLocal = carSelOkBtn.toLocal({
- x: x,
- y: y
- });
- if (Math.abs(okLocal.x) < 150 && Math.abs(okLocal.y) < 70) {
- // Set player car asset
- selectedPlayerCarAsset = carGrid[carGridSelectedIdx]._carAsset;
- // For enemy cars, use all except selected player car
- selectedEnemyCarAssets = [];
- for (var i = 0; i < allCarAssets.length; i++) {
- var asset = allCarAssets[i];
- if (asset !== selectedPlayerCarAsset && asset !== 'playerCar') {
- selectedEnemyCarAssets.push(asset);
- }
- }
- isCarSelect = false;
- carSelectOverlay.visible = false;
- menuOverlay.visible = true;
- return;
- }
- // Back button
- var backLocal = carSelBackBtn.toLocal({
- x: x,
- y: y
- });
- if (Math.abs(backLocal.x) < 150 && Math.abs(backLocal.y) < 70) {
- isCarSelect = false;
- carSelectOverlay.visible = false;
- menuOverlay.visible = true;
- return;
- }
- // ŞAMANDIRA button
- var samLocal = samandiraBtn.toLocal({
- x: x,
- y: y
- });
- if (Math.abs(samLocal.x) < 150 && Math.abs(samLocal.y) < 70) {
- carSelectOverlay.visible = false;
- samandiraOverlay.visible = true;
- return;
- }
-};
-// --- Samandıra overlay touch logic ---
-samandiraOverlay.down = function (x, y, obj) {
- // TAMAM button
- var okLocal = samOkBtn.toLocal({
- x: x,
- y: y
- });
- if (Math.abs(okLocal.x) < 200 && Math.abs(okLocal.y) < 80) {
- // Set player car to red, enemy cars to blue
- selectedPlayerCarAsset = 'enemyCarRed';
- selectedEnemyCarAssets = ['enemyCarBlue'];
- isCarSelect = false;
- samandiraOverlay.visible = false;
- menuOverlay.visible = true;
- return;
- }
- // GERİ button
- var backLocal = samBackBtn.toLocal({
- x: x,
- y: y
- });
- if (Math.abs(backLocal.x) < 150 && Math.abs(backLocal.y) < 70) {
- samandiraOverlay.visible = false;
- carSelectOverlay.visible = true;
- return;
- }
-};
-// --- Main menu overlay touch logic ---
-menuOverlay.down = function (x, y, obj) {
- // Car select button
- var carBtnLocal = carSelectBtn.toLocal({
- x: x,
- y: y
- });
- if (Math.abs(carBtnLocal.x) < 200 && Math.abs(carBtnLocal.y) < 60) {
- isCarSelect = true;
- carSelectOverlay.visible = true;
- menuOverlay.visible = false;
- // Do not start the game, just show car select overlay
- return;
- }
- // Start button
- var startLocal = menuStart.toLocal({
- x: x,
- y: y
- });
- if (Math.abs(startLocal.x) < 200 && Math.abs(startLocal.y) < 70) {
- isMenu = false;
- menuOverlay.visible = false;
- isCarSelect = false;
- carSelectOverlay.visible = false;
- return;
- }
-};
-// --- Forward overlay events to overlays ---
+// No overlays, just handle tap for lane change
game.down = function (x, y, obj) {
- if (samandiraOverlay && samandiraOverlay.visible) {
- samandiraOverlay.down(x, y, obj);
- return;
- }
- if (isCarSelect && carSelectOverlay.visible) {
- carSelectOverlay.down(x, y, obj);
- return;
- }
- if (isMenu && menuOverlay.visible) {
- menuOverlay.down(x, y, obj);
- return;
- }
- // Oyun alanının ortasına göre sağ/sol tespit et
if (x > GAME_WIDTH / 2) {
// Sağ tıklandı, sağa bir şerit
movePlayerToLane(player.lane + 1);
} else {
@@ -639,9 +322,8 @@
return Math.abs(a.x - b.x) < (a.width + b.width) / 2 - 20 && Math.abs(a.y - b.y) < (a.height + b.height) / 2 - 20;
}
// Oyun güncelleme
game.update = function () {
- if (isMenu) return;
if (isGameOver) return;
// Skor: mesafe arttıkça artar
distance += 1;
scoreTxt.setText(distance);
@@ -726,14 +408,10 @@
player.x = LANE_X[1];
player.y = GAME_HEIGHT - 500;
updateHighScore();
// Menüye geri dön
- isMenu = true;
+ isMenu = false;
isCarSelect = false;
- if (menuOverlay) menuOverlay.visible = true;
- if (carSelectOverlay) carSelectOverlay.visible = false;
// Reset car selection to default
selectedPlayerCarAsset = 'playerCar';
selectedEnemyCarAssets = [];
- carGridSelectedIdx = 0;
- updateCarGridSelection(carGridSelectedIdx);
});
\ No newline at end of file
Peugeot pars arkasi ama yukaridan. In-Game asset. 2d. High contrast. No shadows
Bmw e60 arkasi ama yukaridan. In-Game asset. 2d. High contrast. No shadows
Renault l90 arkasi ama yukaridan. In-Game asset. 2d. High contrast. No shadows
Gri Dodge challenger 2014 arkasi ama yukaridan. In-Game asset. 2d. High contrast. No shadows
Beyaz Peugeot 405 arkasi ama yukaridan. In-Game asset. 2d. High contrast. No shadows
Kirmizi Irankhodro samand arkasi ama yukaridan. In-Game asset. 2d. High contrast. No shadows
Beyaz saipa pride 131 arkasi ama yukaridan. In-Game asset. 2d. High contrast. No shadows
Turuncu mazda rx7 arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Cheverleot camaro ss arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Yeni porche 911 arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Yeni ford mustang arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Citroen xantia arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Zamyad neysan arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Lambirghini aventador arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Gri mercedes benz cls arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Acik mavi Bmw m4 arkasi ama yukaridan In-Game asset. 2d. High contrast. No shadows
Usntunde play yazan araba temali mavi bir dugme. In-Game asset. 2d. High contrast. No shadows
Car yazili araba temali turuncu ve daire bir dugme. In-Game asset. 2d. High contrast. No shadows
Mavi ve asiri Spor olarak ozellestirilmis bir peugeot 206 arkasi ama yukaridan. In-Game asset. 2d. High contrast. No shadows
Tam olarak yukaridan gorunen seritsiz duz bir yol. In-Game asset. 2d. High contrast. No shadows
Modern sokak lambasi. In-Game asset. 2d. High contrast. No shadows