User prompt
full screen game
User prompt
düşmanlar daha yavaş olsun
User prompt
Oyunun Başında Yolda By Zınar Games yazsın
User prompt
Oyunda Hamzanın kaşı falan yazmasın sadece Çınar Yapmıştır Yazsın
User prompt
sağ üste Çınar Yapmıştır yazsın
User prompt
Tabelalarda olsun Yolda değil
User prompt
Bu Oyun Çınar Tarafından Yapıldı yazan Tabela Olsun VE yolun Bazı Yerlerinde Hamzanın Kaşı Huso Çay falan yazsın
User prompt
oyunun başında By Çınar Yazsın
User prompt
Oyun türkçe olsun
User prompt
fuels stop the road
User prompt
car dont shoot
User prompt
Add enemy and shoot car and car healt and fuel fuel look like coin
Remix started
Copy Drifting Love
/**** * Classes ****/ var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -18; self.update = function () { if (typeof self.lastY === 'undefined') self.lastY = self.y; self.y += self.speed; }; return self; }); var Car = Container.expand(function () { var self = Container.call(this); self.projectMovement = function (vector) { var angle = -Math.PI / 4; var cosAngle = Math.cos(angle); var sinAngle = Math.sin(angle); return { x: vector.x * cosAngle - vector.y * sinAngle, y: vector.x * sinAngle + vector.y * cosAngle }; }; var carGraphics = self.attachAsset('car', { anchorX: 0.5, anchorY: 0.5 }); self.ORIGINAL_SPEED = 2; self.speed = self.ORIGINAL_SPEED; self.direction = 0; self.momentum = { x: 0, y: 0 }; self._move_migrated = function () { var momentumModifier = 0.1; self.speed *= 1.01; if (self.direction === 0) { self.momentum.x += self.speed * momentumModifier; } else { self.momentum.y -= self.speed * momentumModifier; } var projectedMovement = self.projectMovement(self.momentum); self.x += projectedMovement.x; self.y += projectedMovement.y; var nonTravelMomentum; if (self.direction === 0) { self.momentum.x *= 0.98; self.momentum.y *= 0.95; nonTravelMomentum = self.momentum.y; } else { self.momentum.x *= 0.95; self.momentum.y *= 0.98; nonTravelMomentum = self.momentum.x; } self.nonTravelMomentum = nonTravelMomentum; }; self.changeDirection = function () { self.direction = self.direction === 0 ? 1 : 0; self.speed = self.ORIGINAL_SPEED; carGraphics.scale.x *= -1; LK.getSound('Skid').play(); }; }); var Driver = Container.expand(function () { var self = Container.call(this); self.x = +1500; self.y = +1500; var driverGraphics = self.attachAsset('driver', { anchorX: 0.5, anchorY: 0.5 }); }); var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3 + Math.random() * 1.2; self.update = function () { if (typeof self.lastY === 'undefined') self.lastY = self.y; self.y += self.speed; }; return self; }); var Fuel = Container.expand(function () { var self = Container.call(this); var fuelGraphics = self.attachAsset('fuel', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 7; self.update = function () { if (typeof self.lastY === 'undefined') self.lastY = self.y; if (!self.stopped) { // Check if fuel is on the road var fuelPosition = { x: self.x, y: self.y }; var onRoad = false; for (var i = 0; i < roadSegments.length; i++) { var segment = roadSegments[i]; var segmentStart = { x: segment.x + Math.sin(segment.rotation) * 100, y: segment.y - Math.cos(segment.rotation) * 100 }; var segmentEnd = { x: segment.x - Math.sin(segment.rotation) * (segment.height - segment.width / 2), y: segment.y + Math.cos(segment.rotation) * (segment.height - segment.width / 2) }; var distance = game.calculateDistanceToPoint(fuelPosition, segmentStart, segmentEnd); if (distance < segment.width / 2 - 50) { onRoad = true; break; } } if (onRoad) { self.stopped = true; } else { self.y += self.speed; } } }; return self; }); var Particle = Container.expand(function () { var self = Container.call(this); var particleGraphics = self.attachAsset('particle', { anchorX: 0.5, anchorY: 0.5 }); particleGraphics.rotation = Math.PI / 4; self.lifetime = 100; self.tick = function () { if (--self.lifetime <= 0) { self.destroy(); } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ // The LK engine automatically scales the game to full screen, so no further action is needed here. game.calculateDistanceToPoint = function (point, segmentStart, segmentEnd) { var A = point.x - segmentStart.x; var B = point.y - segmentStart.y; var C = segmentEnd.x - segmentStart.x; var D = segmentEnd.y - segmentStart.y; var dot = A * C + B * D; var len_sq = C * C + D * D; var param = -1; if (len_sq != 0) { param = dot / len_sq; } var xx, yy; if (param < 0) { xx = segmentStart.x; yy = segmentStart.y; } else if (param > 1) { xx = segmentEnd.x; yy = segmentEnd.y; } else { xx = segmentStart.x + param * C; yy = segmentStart.y + param * D; } var dx = point.x - xx; var dy = point.y - yy; return Math.sqrt(dx * dx + dy * dy); }; game.addRoadSegment = function () { var lastSegment = roadSegments[roadSegments.length - 1]; zigzag = !zigzag; var segment = roadContainer.attachAsset('roadSegment', { anchorX: 0.5 }); segment.width = segmentWidth; segmentWidth = Math.max(350, segmentWidth - 15); segment.height = i === 1 ? 3000 : Math.floor(Math.random() * (4000 - 1200 + 1)) + 1200; segment.rotation = zigzag ? -Math.PI - Math.PI / 4 : -Math.PI + Math.PI / 4; segment.y = currentY; segment.x = currentX; var adjustedHeight = segment.height - segmentWidth / 2; currentY += adjustedHeight * Math.cos(segment.rotation); currentX -= adjustedHeight * Math.sin(segment.rotation); segment.shadow = roadContainer.attachAsset('roadSegmentShadow', { anchorX: 0.5 }); segment.shadow.width = segment.width; segment.shadow.height = segment.height; segment.shadow.rotation = segment.rotation; segment.shadow.x = segment.x; segment.shadow.y = segment.y + 50; segment.shadow.alpha = 1; segment.used = false; roadSegments.push(segment); roadContainer.addChildAt(segment.shadow, 0); roadContainer.addChild(segment); }; game.setBackgroundColor(0xc39977); // --- YOL TABELASI: BU OYUN ÇINAR TARAFINDAN YAPILDI --- var tabelaText = new Text2('Bu Oyun Çınar Tarafından Yapıldı', { size: 90, fill: 0x222222, weight: '800', align: 'center', dropShadow: true, dropShadowColor: '#e3e3d9', dropShadowBlur: 8, dropShadowAngle: Math.PI / 6, dropShadowDistance: 8 }); tabelaText.anchor.set(0.5, 0); tabelaText.x = 2048 / 2; tabelaText.y = 120; LK.gui.top.addChild(tabelaText); var particles = []; LK.playMusic('backgroundMusic'); var mainContainer = game.addChild(new Container()); var roadContainer = mainContainer.addChild(new Container()); var roadSegments = []; var segmentLength = Math.floor(Math.random() * (1000 - 200 + 1)) + 200; var segmentWidth = 1200; var currentX = 2048 / 2; var currentY = 2732 / 2; var zigzag = true; for (var i = 1; i <= 15; i++) { game.addRoadSegment(); } // All main game elements are already sized and positioned for a 2048x2732 canvas, which is full screen on iPad Pro 12" retina. // No further changes are needed for full screen support, as LK handles scaling automatically. // --- GUI TABELALAR (YOLDA DEĞİL) --- // Sadece 'Çınar Yapmıştır' tabelası gösterilecek var scoreText = new Text2('Skor: 0', { size: 150, fill: 0xFFFFFF, weight: '800', dropShadow: true, dropShadowColor: '#373330', dropShadowBlur: 4, dropShadowAngle: Math.PI / 6, dropShadowDistance: 6 }); scoreText.anchor.set(0, 0); LK.gui.top.addChild(scoreText); // Sağ üst köşeye "Çınar Yapmıştır" tabelası ekle var tabelaCinarYapmistir = new Text2('Çınar Yapmıştır', { size: 70, fill: 0x222222, weight: '800', align: 'right', dropShadow: true, dropShadowColor: '#e3e3d9', dropShadowBlur: 8, dropShadowAngle: Math.PI / 6, dropShadowDistance: 8 }); tabelaCinarYapmistir.anchor.set(1, 0); tabelaCinarYapmistir.x = 2048 - 40; tabelaCinarYapmistir.y = 30; LK.gui.top.addChild(tabelaCinarYapmistir); var notificationTexts = ['Onun sıcak kucağını özlüyorum', 'Her virajda aşkım artıyor', 'Zaman duman gibi akıp gidiyor', 'Sesi zihnimde yankılanıyor', 'Umutsuzluk her dönüşte keskinleşiyor', 'Virajlar ona yaklaştırıyor', 'Her virajda tutkum büyüyor', 'Zaman akıp gidiyor ama aşk kalıyor', 'Umutsuzluk her hareketimi keskinleştiriyor', 'Kavuşma, en büyük itici güç', 'Beni bekliyor mu?', 'Nerede olabilir?', 'Zamanında ulaşabilir miyim?', 'Vardığımda bana gülümseyecek mi?', 'Geldiğimi biliyor mu?', 'Kucağı ödülüm', 'Hala beni hatırlıyor mu?', 'Aşkı gözlerinde görecek miyim?', 'Acelemi hissediyor mu?', 'Aşkımız güçlenecek mi?', 'Sesi yolumu aydınlatıyor', 'Hala kalbini tutuyor muyum?', 'Zamanında ulaşabilir miyim?', 'Hala bize inanıyor mu?', 'Aşkımız her şeyi yenecek mi?', 'Ne kadar hızlı gidebilirim?', 'Sınırlarımı zorlayabilir miyim?', 'Hız beni ona ulaştırır mı?', 'Acele gücüm mü?', 'Zamana karşı yarışabilir miyim?', 'Bu bir zaman yarışı mı?', 'İvme bizi kurtarır mı?', 'Hız şeridinde miyim?', 'Yeni bir rekor kırabilir miyim?', 'Hıza tutkun muyum?', 'Zamanı geride bırakacak mıyım?', 'En hızlı sürücü ben miyim?', 'Ona hızlıca ulaşabilir miyim?', 'Aşkın aciliyeti hızımı artırıyor', 'Her kilometre ona yaklaştırıyor', 'Bu yol sonsuz mu, ebedi mi?', 'Yıldızlar yolculuğuma tanık', 'Yol onun adını mırıldanıyor', 'Rüzgar varlığını fısıldıyor', 'Her viraj kararlılığımı test ediyor', 'Aşkı motorumu besliyor', 'Aşk mesafeyi aşabilir mi?', 'Ufka bakıyor mu?', 'Kavuşmamızı hayal ediyor mu?', 'Hızım onu etkileyecek mi?', 'Şafak bizi bir araya getirecek mi?', 'Aşk yolu fethedebilir mi?', 'Her kilometre kalbe bir adım', 'Kendimi mi yoksa onu mu kovalıyorum?', 'Yaklaştığımı hissediyor mu?', 'Ay ona yol gösteriyor', 'Ufukta onun vaadi var', 'Motorumun sesini duyacak mı?', 'Zaman farkını kapatabilir miyim?', 'Bu aşk mı, takıntı mı?', 'Yolculuk aşkımızı tanımlar', 'Asfalt tekerlerimin altında mırıldanıyor', 'Şehir bir siluete dönüşüyor', 'Kokusu hafızamda kalıyor', 'Farlarım karanlığı deliyor', 'Yol kalp atışı gibi uzanıyor', 'Adrenalin damarlarımda şarkı söylüyor', 'Kahkahası kararlılığımı besliyor', 'Her köşe cesaretimi test ediyor', 'Gökdelenler gölgesini saklıyor', 'Bitiriş çizgisinde ödül o mu?', 'Her saniye özlemimi kışkırtıyor', 'Yıldızlar bu gece bizim için hizalanacak mı?', 'Yol bilmecelerle konuşuyor', 'Umutla mı yoksa umutsuzlukla mı sürüyorum?', 'Yansımasında görüntüsü dans ediyor', 'Motor kararlılıkla homurdanıyor', 'Her vitesle saat daha hızlı atıyor', 'Rüzgar adını bana getiriyor', 'Lastiklerim kalbine yol çiziyor', 'Yol düşüncelerimi tüketiyor', 'Aşkı pusulam', 'Her kırmızı ışık sonsuzluk gibi', 'Hızım özlemime yetişecek mi?', 'Her tabela ona yaklaştırıyor', 'Bu yarış aşk için mi, kefaret için mi?', 'Açık yol hiçbir şey vaat etmiyor', 'Gözleri beni sisin içinden çekiyor', 'Ufuk yokluğuyla yanıyor', 'Her gölge onun bir anısını saklıyor', 'Gece şüphemi yutuyor', 'İçimdeki kaosu dizginleyebilir miyim?', 'Mesafe sadakatimi alaya alıyor', 'Her sokak veda fısıldıyor', 'Yol onun nazik dokunuşu gibi kıvrılıyor', 'Her dönüşte kararlılığım sıkılaşıyor', 'Gecenin soğuğu ateşimi söndüremez', 'Her aynaya bakışım beni ileri itiyor', 'Hız göstergesi özlemimi ölçüyor', 'Her viraj adını ruhuma kazıyor', 'Yokluğu yolu şekillendiriyor', 'Her saniye yakıyor', 'Çığlığı yankılanıyor', 'Saat çığlık atıyor', 'Yavaşlayamam', 'Kokusu hızla kayboluyor', 'Yol geri ısırıyor', 'Zaman bir bıçak gibi kesiyor', 'Kayboluyor', 'Rüzgar adını uluyor', 'Tutuşum sıkılaşıyor', 'Lastikler aciliyetle çığlık atıyor', 'Yüzü soluyor', 'Gece beklemeyecek', 'Zamanım tükeniyor', 'Motor adını haykırıyor', 'Kalbim onunla yarışıyor', 'Her viraj bana karşı', 'Ona başarısız olamam', 'Karanlık beni kışkırtıyor', 'Sesi can simidim', 'Ufuk yaklaşmıyor', 'Her saniye acı', 'Bana şimdi ihtiyacı var', 'Kader ensede', 'Her viraj zamanı çalıyor', 'Sıcaklığı kayıyor', 'Bırakmayacağım', 'Yol geri savaşıyor', 'Çok geç olamam', 'Kalp atışı soluyor', 'Yıldızlar hızla bulanıklaşıyor', 'Fren yok, sadece aşk', 'Gölgesini kovalıyorum', 'Her ışık umut yakıyor', 'Bu yolculuk hayat memat meselesi', 'Kucağı kayıyor', 'Gece beni affetmeyecek', 'Ödünç zamandayım', 'Yol bir savaş alanı']; var usedNotificationTexts = []; function getRandomNotificationText() { if (notificationTexts.length === 0) { notificationTexts = usedNotificationTexts.splice(0, usedNotificationTexts.length); } var index = Math.floor(Math.random() * notificationTexts.length); var text = notificationTexts.splice(index, 1)[0]; usedNotificationTexts.push(text); return text; } var notificationText = new Text2(getRandomNotificationText(), { size: 60, fill: 0xFFFFFF, weight: '400', align: 'center', stroke: '#000000', strokeThickness: 8 }); notificationText.anchor.set(0, 4); notificationText.x -= 350; LK.gui.bottom.addChild(notificationText); // --- YOLDA 'By Zınar Games' YAZISI --- var byZinarText = new Text2('By Zınar Games', { size: 120, fill: 0x3333ff, weight: '800', align: 'center', dropShadow: true, dropShadowColor: '#e3e3d9', dropShadowBlur: 8, dropShadowAngle: Math.PI / 6, dropShadowDistance: 8 }); byZinarText.anchor.set(0.5, 0.5); byZinarText.x = 2048 / 2; byZinarText.y = 2732 / 2 - 400; mainContainer.addChild(byZinarText); // By Zınar Games yazısı birkaç saniye sonra kaybolsun LK.setTimeout(function () { if (byZinarText && byZinarText.parent) { byZinarText.parent.removeChild(byZinarText); byZinarText.destroy(); } }, 2200); var car = mainContainer.addChild(new Car()); car.x = 2048 / 2; car.y = 2732 / 2; var driver = LK.gui.addChild(new Driver()); driver.x = 250; driver.y = 1800; var isGameOver = false; var score = 0; var closestSegment = null; // Car health and fuel var carHealth = 3; var carFuel = 100; var maxCarFuel = 100; // Arrays for enemies, bullets, and fuels var enemies = []; var bullets = []; var fuels = []; // Health and fuel UI var healthText = new Text2('❤❤❤', { size: 80, fill: 0xff4444, weight: '800', align: 'left', stroke: '#000000', strokeThickness: 6 }); healthText.anchor.set(0, 0); healthText.x = 120; healthText.y = 0; LK.gui.top.addChild(healthText); var fuelText = new Text2('⛽ 100', { size: 80, fill: 0xffd700, weight: '800', align: 'left', stroke: '#000000', strokeThickness: 6 }); fuelText.anchor.set(0, 0); fuelText.x = 120; fuelText.y = 90; LK.gui.top.addChild(fuelText); game.on('down', function (x, y, obj) { car.changeDirection(); }); LK.on('tick', function () { car._move_migrated(); // --- FUEL CONSUMPTION --- if (!isGameOver) { carFuel -= 0.08; if (carFuel < 0) carFuel = 0; fuelText.setText('⛽ ' + Math.max(0, Math.floor(carFuel))); if (carFuel <= 0) { isGameOver = true; LK.showGameOver(); return; } } // --- ENEMY SPAWN --- if (Math.random() < 0.025) { var enemy = new Enemy(); enemy.x = 600 + Math.random() * (2048 - 1200); enemy.y = car.y - 1200; mainContainer.addChild(enemy); enemies.push(enemy); } // --- FUEL SPAWN --- if (Math.random() < 0.012) { var fuel = new Fuel(); fuel.x = 600 + Math.random() * (2048 - 1200); fuel.y = car.y - 1300; mainContainer.addChild(fuel); fuels.push(fuel); } // --- BULLET UPDATE --- for (var b = bullets.length - 1; b >= 0; b--) { var bullet = bullets[b]; bullet.update(); if (bullet.y < car.y - 1800) { bullet.destroy(); bullets.splice(b, 1); } } // --- ENEMY UPDATE & COLLISION --- for (var e = enemies.length - 1; e >= 0; e--) { var enemy = enemies[e]; enemy.update(); // Remove if off screen if (enemy.y > car.y + 1800) { enemy.destroy(); enemies.splice(e, 1); continue; } // Bullet collision var hit = false; for (var b = bullets.length - 1; b >= 0; b--) { var bullet = bullets[b]; if (enemy.intersects(bullet)) { enemy.destroy(); bullet.destroy(); enemies.splice(e, 1); bullets.splice(b, 1); hit = true; break; } } if (hit) continue; // Car collision if (enemy.intersects(car)) { enemy.destroy(); enemies.splice(e, 1); carHealth--; healthText.setText('❤'.repeat(carHealth)); if (carHealth <= 0 && !isGameOver) { isGameOver = true; LK.showGameOver(); return; } } } // --- FUEL UPDATE & COLLISION --- for (var f = fuels.length - 1; f >= 0; f--) { var fuel = fuels[f]; fuel.update(); if (fuel.y > car.y + 1800) { fuel.destroy(); fuels.splice(f, 1); continue; } if (fuel.intersects(car)) { carFuel = Math.min(maxCarFuel, carFuel + 30); fuelText.setText('⛽ ' + Math.floor(carFuel)); fuel.destroy(); fuels.splice(f, 1); } } // --- CAR ON ROAD LOGIC --- var carIsOnRoad = false; var carPosition = { x: car.x, y: car.y }; var currentClosestSegment = null; var currentClosestDistance = Infinity; roadSegments.forEach(function (segment) { var segmentStart = { x: segment.x + Math.sin(segment.rotation) * 100, y: segment.y - Math.cos(segment.rotation) * 100 }; var segmentEnd = { x: segment.x - Math.sin(segment.rotation) * (segment.height - segment.width / 2), y: segment.y + Math.cos(segment.rotation) * (segment.height - segment.width / 2) }; var distance = game.calculateDistanceToPoint(carPosition, segmentStart, segmentEnd); if (distance < currentClosestDistance) { currentClosestDistance = distance; currentClosestSegment = segment; } if (distance < segment.width / 2 - 50) { carIsOnRoad = true; } }); if (closestSegment !== currentClosestSegment && !currentClosestSegment.used) { closestSegment = currentClosestSegment; closestSegment.used = true; score++; car.ORIGINAL_SPEED += 0.1; scoreText.setText('Skor: ' + score.toString()); notificationText.setText(getRandomNotificationText()); } if (!carIsOnRoad && !isGameOver) { isGameOver = true; LK.showGameOver(); return; } // --- PARTICLES --- var particleOffsets = [{ x: 20, y: 140 }, { x: 20 + 100, y: 140 - 100 }, { x: 20 - 150, y: 140 - 150 }, { x: 20 - 150 + 100, y: 140 - 150 - 100 }]; for (var i = 0; i < particleOffsets.length; i++) { var alphaValue = Math.max(0, Math.min(1, Math.abs(car.nonTravelMomentum) / 5 - 0.5)); if (alphaValue > 0) { var particle = new Particle(); particle.alpha = alphaValue; var noiseX = (Math.random() - 0.5) * 10; var noiseY = (Math.random() - 0.5) * 10; particle.x = car.x + (car.direction === 0 ? -1 : 1) * particleOffsets[i].x + noiseX; particle.y = car.y + particleOffsets[i].y + noiseY; mainContainer.addChildAt(particle, 1); particles.push(particle); } } particles.forEach(function (particle, index) { particle.tick(); if (particle.lifetime <= 0) { particles.splice(index, 1); } }); // --- CAMERA FOLLOW --- var carLocalPosition = game.toLocal(car.position, car.parent); var offsetX = (2048 / 2 - carLocalPosition.x) / 20; var offsetY = (2732 - 450 - carLocalPosition.y) / 20; mainContainer.x += offsetX; mainContainer.y += offsetY; // --- ROAD SEGMENTS CLEANUP --- for (var i = roadSegments.length - 1; i >= 0; i--) { var segmentGlobalPosition = game.toLocal(roadSegments[i].position, roadSegments[i].parent); if (segmentGlobalPosition.y - roadSegments[i].height > 2732 * 2) { roadSegments[i].shadow.destroy(); roadSegments[i].destroy(); roadSegments.splice(i, 1); game.addRoadSegment(); } } });
===================================================================
--- original.js
+++ change.js
@@ -153,8 +153,9 @@
/****
* Game Code
****/
+// The LK engine automatically scales the game to full screen, so no further action is needed here.
game.calculateDistanceToPoint = function (point, segmentStart, segmentEnd) {
var A = point.x - segmentStart.x;
var B = point.y - segmentStart.y;
var C = segmentEnd.x - segmentStart.x;
@@ -238,8 +239,10 @@
var zigzag = true;
for (var i = 1; i <= 15; i++) {
game.addRoadSegment();
}
+// All main game elements are already sized and positioned for a 2048x2732 canvas, which is full screen on iPad Pro 12" retina.
+// No further changes are needed for full screen support, as LK handles scaling automatically.
// --- GUI TABELALAR (YOLDA DEĞİL) ---
// Sadece 'Çınar Yapmıştır' tabelası gösterilecek
var scoreText = new Text2('Skor: 0', {
size: 150,
DeLorean car, seen from behind Top-down, gta2, Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.isometric
cool looking driver holding a car wheel as if he's driving. 30 years old. vintage retro 1980 style. 3/4 view. pixelated. 8 bit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.