/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var EnemyCar = Container.expand(function (carType) { var self = Container.call(this); var assetId = carType || 'enemyCar1'; var carGraphics = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3 + Math.random() * 4; self.lane = 0; self.checkedForNearMiss = false; self.update = function () { self.y += self.speed + gameSpeed; }; return self; }); var PlayerCar = Container.expand(function () { var self = Container.call(this); var carGraphics = self.attachAsset('playerCar', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 0; self.maxSpeed = 8; self.targetX = 0; self.update = function () { // Smooth movement towards target position var diff = self.targetX - self.x; self.x += diff * 0.1; // Keep car within road bounds if (self.x < 350) self.x = 350; if (self.x > 1698) self.x = 1698; }; return self; }); var RoadLane = Container.expand(function () { var self = Container.call(this); var laneGraphics = self.attachAsset('roadLane', { anchorX: 0.5, anchorY: 0.5 }); self.update = function () { self.y += gameSpeed + 2; // Reset position when off screen if (self.y > 2800) { self.y = -100; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2c3e50 }); /**** * Game Code ****/ // Game variables var player; var enemyCars = []; var roadLanes = []; var gameSpeed = 2; var maxGameSpeed = 12; var speedIncreaseRate = 0.005; var spawnTimer = 0; var spawnRate = 120; var distance = 0; var isGameActive = true; var dragActive = false; // Lane positions (4 lanes) var lanePositions = [450, 650, 850, 1050, 1250, 1450]; // Create road lanes for visual effect for (var i = 0; i < 20; i++) { var lane = new RoadLane(); lane.x = 1024; lane.y = i * 150 - 300; roadLanes.push(lane); game.addChild(lane); } // Create player car player = new PlayerCar(); player.x = 1024; player.y = 2200; player.targetX = player.x; game.addChild(player); // Score display var scoreText = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(0.5, 0); LK.gui.top.addChild(scoreText); // Distance display var distanceText = new Text2('Distance: 0m', { size: 45, fill: 0xFFFFFF }); distanceText.anchor.set(0, 0); distanceText.x = 50; distanceText.y = 100; LK.gui.addChild(distanceText); // Speed display var speedText = new Text2('Speed: 0 km/h', { size: 45, fill: 0xFFFFFF }); speedText.anchor.set(1, 0); speedText.x = LK.gui.width - 50; speedText.y = 100; LK.gui.addChild(speedText); function spawnEnemyCar() { if (!isGameActive) return; var carTypes = ['enemyCar1', 'enemyCar2', 'truck']; var randomType = carTypes[Math.floor(Math.random() * carTypes.length)]; var enemy = new EnemyCar(randomType); // Choose random lane var laneIndex = Math.floor(Math.random() * lanePositions.length); enemy.x = lanePositions[laneIndex]; enemy.y = -200; enemy.lane = laneIndex; enemyCars.push(enemy); game.addChild(enemy); } function checkCollisions() { if (!isGameActive) return; for (var i = enemyCars.length - 1; i >= 0; i--) { var enemy = enemyCars[i]; // Check collision with player if (player.intersects(enemy)) { // Game over isGameActive = false; LK.getSound('crash').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } // Check for near miss bonus if (!enemy.checkedForNearMiss && Math.abs(enemy.y - player.y) < 100 && Math.abs(enemy.x - player.x) < 150) { enemy.checkedForNearMiss = true; LK.setScore(LK.getScore() + 10); LK.getSound('nearMiss').play(); LK.effects.flashObject(player, 0x00ff00, 200); } // Remove cars that are off screen if (enemy.y > 2800) { enemy.destroy(); enemyCars.splice(i, 1); } } } function updateUI() { scoreText.setText('Score: ' + LK.getScore()); distanceText.setText('Distance: ' + Math.floor(distance) + 'm'); speedText.setText('Speed: ' + Math.floor(gameSpeed * 10) + ' km/h'); } // Touch controls game.down = function (x, y, obj) { if (!isGameActive) return; dragActive = true; player.targetX = x; }; game.move = function (x, y, obj) { if (!isGameActive || !dragActive) return; player.targetX = x; }; game.up = function (x, y, obj) { dragActive = false; }; // Main game loop game.update = function () { if (!isGameActive) return; // Increase game speed gradually if (gameSpeed < maxGameSpeed) { gameSpeed += speedIncreaseRate; } // Update distance distance += gameSpeed * 0.1; // Add distance points if (LK.ticks % 10 === 0) { LK.setScore(LK.getScore() + 1); } // Spawn enemy cars spawnTimer++; var currentSpawnRate = Math.max(30, spawnRate - Math.floor(gameSpeed * 8)); if (spawnTimer >= currentSpawnRate) { spawnEnemyCar(); spawnTimer = 0; } // Check collisions checkCollisions(); // Update UI updateUI(); // Victory condition - survive for very long distance if (distance >= 10000) { isGameActive = false; LK.showYouWin(); } };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,209 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var EnemyCar = Container.expand(function (carType) {
+ var self = Container.call(this);
+ var assetId = carType || 'enemyCar1';
+ var carGraphics = self.attachAsset(assetId, {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3 + Math.random() * 4;
+ self.lane = 0;
+ self.checkedForNearMiss = false;
+ self.update = function () {
+ self.y += self.speed + gameSpeed;
+ };
+ return self;
+});
+var PlayerCar = Container.expand(function () {
+ var self = Container.call(this);
+ var carGraphics = self.attachAsset('playerCar', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 0;
+ self.maxSpeed = 8;
+ self.targetX = 0;
+ self.update = function () {
+ // Smooth movement towards target position
+ var diff = self.targetX - self.x;
+ self.x += diff * 0.1;
+ // Keep car within road bounds
+ if (self.x < 350) self.x = 350;
+ if (self.x > 1698) self.x = 1698;
+ };
+ return self;
+});
+var RoadLane = Container.expand(function () {
+ var self = Container.call(this);
+ var laneGraphics = self.attachAsset('roadLane', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.update = function () {
+ self.y += gameSpeed + 2;
+ // Reset position when off screen
+ if (self.y > 2800) {
+ self.y = -100;
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x2c3e50
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var player;
+var enemyCars = [];
+var roadLanes = [];
+var gameSpeed = 2;
+var maxGameSpeed = 12;
+var speedIncreaseRate = 0.005;
+var spawnTimer = 0;
+var spawnRate = 120;
+var distance = 0;
+var isGameActive = true;
+var dragActive = false;
+// Lane positions (4 lanes)
+var lanePositions = [450, 650, 850, 1050, 1250, 1450];
+// Create road lanes for visual effect
+for (var i = 0; i < 20; i++) {
+ var lane = new RoadLane();
+ lane.x = 1024;
+ lane.y = i * 150 - 300;
+ roadLanes.push(lane);
+ game.addChild(lane);
+}
+// Create player car
+player = new PlayerCar();
+player.x = 1024;
+player.y = 2200;
+player.targetX = player.x;
+game.addChild(player);
+// Score display
+var scoreText = new Text2('Score: 0', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+scoreText.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreText);
+// Distance display
+var distanceText = new Text2('Distance: 0m', {
+ size: 45,
+ fill: 0xFFFFFF
+});
+distanceText.anchor.set(0, 0);
+distanceText.x = 50;
+distanceText.y = 100;
+LK.gui.addChild(distanceText);
+// Speed display
+var speedText = new Text2('Speed: 0 km/h', {
+ size: 45,
+ fill: 0xFFFFFF
+});
+speedText.anchor.set(1, 0);
+speedText.x = LK.gui.width - 50;
+speedText.y = 100;
+LK.gui.addChild(speedText);
+function spawnEnemyCar() {
+ if (!isGameActive) return;
+ var carTypes = ['enemyCar1', 'enemyCar2', 'truck'];
+ var randomType = carTypes[Math.floor(Math.random() * carTypes.length)];
+ var enemy = new EnemyCar(randomType);
+ // Choose random lane
+ var laneIndex = Math.floor(Math.random() * lanePositions.length);
+ enemy.x = lanePositions[laneIndex];
+ enemy.y = -200;
+ enemy.lane = laneIndex;
+ enemyCars.push(enemy);
+ game.addChild(enemy);
+}
+function checkCollisions() {
+ if (!isGameActive) return;
+ for (var i = enemyCars.length - 1; i >= 0; i--) {
+ var enemy = enemyCars[i];
+ // Check collision with player
+ if (player.intersects(enemy)) {
+ // Game over
+ isGameActive = false;
+ LK.getSound('crash').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ // Check for near miss bonus
+ if (!enemy.checkedForNearMiss && Math.abs(enemy.y - player.y) < 100 && Math.abs(enemy.x - player.x) < 150) {
+ enemy.checkedForNearMiss = true;
+ LK.setScore(LK.getScore() + 10);
+ LK.getSound('nearMiss').play();
+ LK.effects.flashObject(player, 0x00ff00, 200);
+ }
+ // Remove cars that are off screen
+ if (enemy.y > 2800) {
+ enemy.destroy();
+ enemyCars.splice(i, 1);
+ }
+ }
+}
+function updateUI() {
+ scoreText.setText('Score: ' + LK.getScore());
+ distanceText.setText('Distance: ' + Math.floor(distance) + 'm');
+ speedText.setText('Speed: ' + Math.floor(gameSpeed * 10) + ' km/h');
+}
+// Touch controls
+game.down = function (x, y, obj) {
+ if (!isGameActive) return;
+ dragActive = true;
+ player.targetX = x;
+};
+game.move = function (x, y, obj) {
+ if (!isGameActive || !dragActive) return;
+ player.targetX = x;
+};
+game.up = function (x, y, obj) {
+ dragActive = false;
+};
+// Main game loop
+game.update = function () {
+ if (!isGameActive) return;
+ // Increase game speed gradually
+ if (gameSpeed < maxGameSpeed) {
+ gameSpeed += speedIncreaseRate;
+ }
+ // Update distance
+ distance += gameSpeed * 0.1;
+ // Add distance points
+ if (LK.ticks % 10 === 0) {
+ LK.setScore(LK.getScore() + 1);
+ }
+ // Spawn enemy cars
+ spawnTimer++;
+ var currentSpawnRate = Math.max(30, spawnRate - Math.floor(gameSpeed * 8));
+ if (spawnTimer >= currentSpawnRate) {
+ spawnEnemyCar();
+ spawnTimer = 0;
+ }
+ // Check collisions
+ checkCollisions();
+ // Update UI
+ updateUI();
+ // Victory condition - survive for very long distance
+ if (distance >= 10000) {
+ isGameActive = false;
+ LK.showYouWin();
+ }
+};
\ No newline at end of file
Pixel art Araba kuş bakışı şeklinde olsun. In-Game asset. 2d. High contrast. No shadows
Pixel art mavi araba kuş bakışı. In-Game asset. 2d. High contrast. No shadows
Pixel art kamyon kuş bakışı. In-Game asset. 2d. High contrast. No shadows
Pixel art mavi otobüs kuş bakışı. In-Game asset. 2d. High contrast. No shadows
Pixel art spor araba kus bakışı. In-Game asset. 2d. High contrast. No shadows