User prompt
lane assets sayısını 4e çıkar
User prompt
şeritler bildiğimiz otoban yolları olsun. 4 şeritli yol olacaık yani
User prompt
dumanın rengini siyah yap
User prompt
playercarın arkasın dan duman çıksın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
player car enemycar ve barriere çarptığında playercarın üstünde onu kapatacak şekilde bir patlama efeti çıksın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
her şeritten gelen araba sayısı normal ama satırdaki araba sayısı azalsın
User prompt
4 şeritli olsun
User prompt
şeritteki araba sayısını azalt
Code edit (1 edits merged)
Please save this source code
User prompt
Lane Rush - 3-Lane Racing
Initial prompt
3 şeritli araba sürme oyunu
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Obstacle = Container.expand(function (type) {
var self = Container.call(this);
var assetName = type || 'enemyCar';
var obstacleGraphics = self.attachAsset(assetName, {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = gameSpeed;
self.type = type;
self.update = function () {
self.y += self.speed;
};
return self;
});
var PlayerCar = Container.expand(function () {
var self = Container.call(this);
var carGraphics = self.attachAsset('playerCar', {
anchorX: 0.5,
anchorY: 0.5
});
self.currentLane = 1; // 0 = left, 1 = center, 2 = right
self.targetX = 0;
self.moveSpeed = 15;
self.update = function () {
// Smooth movement towards target lane
if (Math.abs(self.x - self.targetX) > 5) {
if (self.x < self.targetX) {
self.x += self.moveSpeed;
} else {
self.x -= self.moveSpeed;
}
} else {
self.x = self.targetX;
}
};
self.moveToLane = function (lane) {
if (lane >= 0 && lane <= 2) {
self.currentLane = lane;
self.targetX = lanePositions[lane];
}
};
return self;
});
var PowerUp = Container.expand(function () {
var self = Container.call(this);
var powerUpGraphics = self.attachAsset('powerUp', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = gameSpeed;
self.collected = false;
self.update = function () {
self.y += self.speed;
// Rotate for visual effect
powerUpGraphics.rotation += 0.1;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2c3e50
});
/****
* Game Code
****/
// Game constants
var lanePositions = [2048 / 2 - 300, 2048 / 2, 2048 / 2 + 300];
var gameSpeed = 8;
var spawnRate = 0.02;
var powerUpSpawnRate = 0.005;
var difficultyIncrease = 0.0005;
var invulnerableTime = 0;
// Game variables
var obstacles = [];
var powerUps = [];
var distanceScore = 0;
var isGameRunning = true;
// Create lane dividers
var leftLane = LK.getAsset('lane', {
anchorX: 0.5,
anchorY: 0.5,
x: lanePositions[0] - 150,
y: 2732 / 2
});
var rightLane = LK.getAsset('lane', {
anchorX: 0.5,
anchorY: 0.5,
x: lanePositions[1] + 150,
y: 2732 / 2
});
game.addChild(leftLane);
game.addChild(rightLane);
// Create player car
var playerCar = game.addChild(new PlayerCar());
playerCar.x = lanePositions[1];
playerCar.y = 2732 - 300;
playerCar.targetX = lanePositions[1];
// Create score display
var scoreText = new Text2('0', {
size: 100,
fill: 0xFFFFFF
});
scoreText.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreText);
// Input handling
game.down = function (x, y, obj) {
if (!isGameRunning) return;
// Left side tap - move left
if (x < 2048 / 2) {
if (playerCar.currentLane > 0) {
playerCar.moveToLane(playerCar.currentLane - 1);
}
}
// Right side tap - move right
else {
if (playerCar.currentLane < 2) {
playerCar.moveToLane(playerCar.currentLane + 1);
}
}
};
// Spawn obstacles
function spawnObstacle() {
var obstacleType = Math.random() < 0.7 ? 'enemyCar' : 'barrier';
var obstacle = new Obstacle(obstacleType);
var lane = Math.floor(Math.random() * 3);
obstacle.x = lanePositions[lane];
obstacle.y = -100;
obstacle.speed = gameSpeed;
obstacles.push(obstacle);
game.addChild(obstacle);
}
// Spawn power-ups
function spawnPowerUp() {
var powerUp = new PowerUp();
var lane = Math.floor(Math.random() * 3);
powerUp.x = lanePositions[lane];
powerUp.y = -100;
powerUp.speed = gameSpeed;
powerUps.push(powerUp);
game.addChild(powerUp);
}
// Check collisions
function checkCollisions() {
// Check obstacle collisions
for (var i = obstacles.length - 1; i >= 0; i--) {
var obstacle = obstacles[i];
if (playerCar.intersects(obstacle) && invulnerableTime <= 0) {
// Game over
LK.getSound('crash').play();
LK.effects.flashScreen(0xff0000, 1000);
isGameRunning = false;
LK.showGameOver();
return;
}
}
// Check power-up collisions
for (var i = powerUps.length - 1; i >= 0; i--) {
var powerUp = powerUps[i];
if (playerCar.intersects(powerUp) && !powerUp.collected) {
powerUp.collected = true;
LK.getSound('powerup').play();
LK.effects.flashObject(powerUp, 0xffffff, 300);
// Add bonus points
LK.setScore(LK.getScore() + 50);
// Grant temporary invulnerability
invulnerableTime = 120; // 2 seconds at 60fps
// Remove power-up
powerUp.destroy();
powerUps.splice(i, 1);
}
}
}
// Clean up off-screen objects
function cleanupObjects() {
// Clean up obstacles
for (var i = obstacles.length - 1; i >= 0; i--) {
var obstacle = obstacles[i];
if (obstacle.y > 2732 + 100) {
obstacle.destroy();
obstacles.splice(i, 1);
}
}
// Clean up power-ups
for (var i = powerUps.length - 1; i >= 0; i--) {
var powerUp = powerUps[i];
if (powerUp.y > 2732 + 100) {
powerUp.destroy();
powerUps.splice(i, 1);
}
}
}
// Main game loop
game.update = function () {
if (!isGameRunning) return;
// Update distance score
distanceScore += 1;
LK.setScore(Math.floor(distanceScore / 10));
scoreText.setText(LK.getScore());
// Decrease invulnerability timer
if (invulnerableTime > 0) {
invulnerableTime--;
// Flash player during invulnerability
if (invulnerableTime % 10 < 5) {
playerCar.alpha = 0.5;
} else {
playerCar.alpha = 1.0;
}
} else {
playerCar.alpha = 1.0;
}
// Spawn obstacles
if (Math.random() < spawnRate) {
spawnObstacle();
}
// Spawn power-ups
if (Math.random() < powerUpSpawnRate) {
spawnPowerUp();
}
// Increase difficulty over time
gameSpeed += difficultyIncrease;
spawnRate += difficultyIncrease * 0.5;
// Update obstacle speeds
for (var i = 0; i < obstacles.length; i++) {
obstacles[i].speed = gameSpeed;
}
for (var i = 0; i < powerUps.length; i++) {
powerUps[i].speed = gameSpeed;
}
// Check collisions
checkCollisions();
// Clean up off-screen objects
cleanupObjects();
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,245 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Obstacle = Container.expand(function (type) {
+ var self = Container.call(this);
+ var assetName = type || 'enemyCar';
+ var obstacleGraphics = self.attachAsset(assetName, {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = gameSpeed;
+ self.type = type;
+ self.update = function () {
+ self.y += self.speed;
+ };
+ return self;
+});
+var PlayerCar = Container.expand(function () {
+ var self = Container.call(this);
+ var carGraphics = self.attachAsset('playerCar', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.currentLane = 1; // 0 = left, 1 = center, 2 = right
+ self.targetX = 0;
+ self.moveSpeed = 15;
+ self.update = function () {
+ // Smooth movement towards target lane
+ if (Math.abs(self.x - self.targetX) > 5) {
+ if (self.x < self.targetX) {
+ self.x += self.moveSpeed;
+ } else {
+ self.x -= self.moveSpeed;
+ }
+ } else {
+ self.x = self.targetX;
+ }
+ };
+ self.moveToLane = function (lane) {
+ if (lane >= 0 && lane <= 2) {
+ self.currentLane = lane;
+ self.targetX = lanePositions[lane];
+ }
+ };
+ return self;
+});
+var PowerUp = Container.expand(function () {
+ var self = Container.call(this);
+ var powerUpGraphics = self.attachAsset('powerUp', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = gameSpeed;
+ self.collected = false;
+ self.update = function () {
+ self.y += self.speed;
+ // Rotate for visual effect
+ powerUpGraphics.rotation += 0.1;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x2c3e50
+});
+
+/****
+* Game Code
+****/
+// Game constants
+var lanePositions = [2048 / 2 - 300, 2048 / 2, 2048 / 2 + 300];
+var gameSpeed = 8;
+var spawnRate = 0.02;
+var powerUpSpawnRate = 0.005;
+var difficultyIncrease = 0.0005;
+var invulnerableTime = 0;
+// Game variables
+var obstacles = [];
+var powerUps = [];
+var distanceScore = 0;
+var isGameRunning = true;
+// Create lane dividers
+var leftLane = LK.getAsset('lane', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: lanePositions[0] - 150,
+ y: 2732 / 2
+});
+var rightLane = LK.getAsset('lane', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: lanePositions[1] + 150,
+ y: 2732 / 2
+});
+game.addChild(leftLane);
+game.addChild(rightLane);
+// Create player car
+var playerCar = game.addChild(new PlayerCar());
+playerCar.x = lanePositions[1];
+playerCar.y = 2732 - 300;
+playerCar.targetX = lanePositions[1];
+// Create score display
+var scoreText = new Text2('0', {
+ size: 100,
+ fill: 0xFFFFFF
+});
+scoreText.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreText);
+// Input handling
+game.down = function (x, y, obj) {
+ if (!isGameRunning) return;
+ // Left side tap - move left
+ if (x < 2048 / 2) {
+ if (playerCar.currentLane > 0) {
+ playerCar.moveToLane(playerCar.currentLane - 1);
+ }
+ }
+ // Right side tap - move right
+ else {
+ if (playerCar.currentLane < 2) {
+ playerCar.moveToLane(playerCar.currentLane + 1);
+ }
+ }
+};
+// Spawn obstacles
+function spawnObstacle() {
+ var obstacleType = Math.random() < 0.7 ? 'enemyCar' : 'barrier';
+ var obstacle = new Obstacle(obstacleType);
+ var lane = Math.floor(Math.random() * 3);
+ obstacle.x = lanePositions[lane];
+ obstacle.y = -100;
+ obstacle.speed = gameSpeed;
+ obstacles.push(obstacle);
+ game.addChild(obstacle);
+}
+// Spawn power-ups
+function spawnPowerUp() {
+ var powerUp = new PowerUp();
+ var lane = Math.floor(Math.random() * 3);
+ powerUp.x = lanePositions[lane];
+ powerUp.y = -100;
+ powerUp.speed = gameSpeed;
+ powerUps.push(powerUp);
+ game.addChild(powerUp);
+}
+// Check collisions
+function checkCollisions() {
+ // Check obstacle collisions
+ for (var i = obstacles.length - 1; i >= 0; i--) {
+ var obstacle = obstacles[i];
+ if (playerCar.intersects(obstacle) && invulnerableTime <= 0) {
+ // Game over
+ LK.getSound('crash').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ isGameRunning = false;
+ LK.showGameOver();
+ return;
+ }
+ }
+ // Check power-up collisions
+ for (var i = powerUps.length - 1; i >= 0; i--) {
+ var powerUp = powerUps[i];
+ if (playerCar.intersects(powerUp) && !powerUp.collected) {
+ powerUp.collected = true;
+ LK.getSound('powerup').play();
+ LK.effects.flashObject(powerUp, 0xffffff, 300);
+ // Add bonus points
+ LK.setScore(LK.getScore() + 50);
+ // Grant temporary invulnerability
+ invulnerableTime = 120; // 2 seconds at 60fps
+ // Remove power-up
+ powerUp.destroy();
+ powerUps.splice(i, 1);
+ }
+ }
+}
+// Clean up off-screen objects
+function cleanupObjects() {
+ // Clean up obstacles
+ for (var i = obstacles.length - 1; i >= 0; i--) {
+ var obstacle = obstacles[i];
+ if (obstacle.y > 2732 + 100) {
+ obstacle.destroy();
+ obstacles.splice(i, 1);
+ }
+ }
+ // Clean up power-ups
+ for (var i = powerUps.length - 1; i >= 0; i--) {
+ var powerUp = powerUps[i];
+ if (powerUp.y > 2732 + 100) {
+ powerUp.destroy();
+ powerUps.splice(i, 1);
+ }
+ }
+}
+// Main game loop
+game.update = function () {
+ if (!isGameRunning) return;
+ // Update distance score
+ distanceScore += 1;
+ LK.setScore(Math.floor(distanceScore / 10));
+ scoreText.setText(LK.getScore());
+ // Decrease invulnerability timer
+ if (invulnerableTime > 0) {
+ invulnerableTime--;
+ // Flash player during invulnerability
+ if (invulnerableTime % 10 < 5) {
+ playerCar.alpha = 0.5;
+ } else {
+ playerCar.alpha = 1.0;
+ }
+ } else {
+ playerCar.alpha = 1.0;
+ }
+ // Spawn obstacles
+ if (Math.random() < spawnRate) {
+ spawnObstacle();
+ }
+ // Spawn power-ups
+ if (Math.random() < powerUpSpawnRate) {
+ spawnPowerUp();
+ }
+ // Increase difficulty over time
+ gameSpeed += difficultyIncrease;
+ spawnRate += difficultyIncrease * 0.5;
+ // Update obstacle speeds
+ for (var i = 0; i < obstacles.length; i++) {
+ obstacles[i].speed = gameSpeed;
+ }
+ for (var i = 0; i < powerUps.length; i++) {
+ powerUps[i].speed = gameSpeed;
+ }
+ // Check collisions
+ checkCollisions();
+ // Clean up off-screen objects
+ cleanupObjects();
+};
\ No newline at end of file