User prompt
delete flash efect
User prompt
fix music
User prompt
tampilakn bakckground sky
User prompt
saya ingin memasukkan walpaper latar belakang untuk game
User prompt
background
User prompt
add background
User prompt
masukkan aset latar belakang
User prompt
buat lima variasi level rintangan
User prompt
buat sebuah metode semakin lama layar disentuh semakin tinggi lompatan. adanya meteran lompatan
User prompt
tingkatkan lagi kecepatan motor
User prompt
tingkatkan kecepatan motor
Code edit (1 edits merged)
Please save this source code
User prompt
Moto Rush: Endless Trail
Initial prompt
make an endless run motocross game
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Bike = Container.expand(function () { var self = Container.call(this); var bikeBody = self.attachAsset('bike', { anchorX: 0.5, anchorY: 0.5 }); var frontWheel = self.attachAsset('wheel', { anchorX: 0.5, anchorY: 0.5, x: 25, y: 15 }); var backWheel = self.attachAsset('wheel', { anchorX: 0.5, anchorY: 0.5, x: -25, y: 15 }); self.velocityY = 0; self.gravity = 0.8; self.jumpPower = -18; self.isGrounded = false; self.groundY = 0; self.jump = function () { if (self.isGrounded) { self.velocityY = self.jumpPower; self.isGrounded = false; LK.getSound('jump').play(); } }; self.update = function () { // Apply gravity self.velocityY += self.gravity; self.y += self.velocityY; // Ground collision if (self.y >= self.groundY) { self.y = self.groundY; self.velocityY = 0; self.isGrounded = true; } // Animate wheels frontWheel.rotation += 0.3; backWheel.rotation += 0.3; // Bike tilt based on velocity bikeBody.rotation = self.velocityY * 0.02; }; return self; }); var GroundSegment = Container.expand(function () { var self = Container.call(this); var groundGraphics = self.attachAsset('ground', { anchorX: 0.5, anchorY: 0.5 }); self.speed = -8; self.update = function () { self.x += self.speed; }; return self; }); var Obstacle = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 1 }); self.speed = -8; self.update = function () { self.x += self.speed; }; return self; }); var Ramp = Container.expand(function () { var self = Container.call(this); var rampGraphics = self.attachAsset('ramp', { anchorX: 0.5, anchorY: 1 }); self.speed = -8; self.update = function () { self.x += self.speed; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB }); /**** * Game Code ****/ var bike; var obstacles = []; var ramps = []; var groundSegments = []; var gameSpeed = 8; var distanceScore = 0; var isGameRunning = true; var groundLevel = 2400; var lastObstacleSpawn = 0; var spawnDistance = 300; // Create score display var scoreTxt = new Text2('Distance: 0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Create bike bike = game.addChild(new Bike()); bike.x = 400; bike.y = groundLevel; bike.groundY = groundLevel; // Initialize ground segments function createGroundSegments() { for (var i = 0; i < 15; i++) { var segment = new GroundSegment(); segment.x = i * 200; segment.y = groundLevel + 40; groundSegments.push(segment); game.addChild(segment); } } createGroundSegments(); // Spawn obstacle function spawnObstacle() { var obstacle = new Obstacle(); obstacle.x = 2200; obstacle.y = groundLevel; obstacle.speed = -gameSpeed; obstacles.push(obstacle); game.addChild(obstacle); } // Spawn ramp function spawnRamp() { var ramp = new Ramp(); ramp.x = 2200; ramp.y = groundLevel; ramp.speed = -gameSpeed; ramps.push(ramp); game.addChild(ramp); } // Game input game.down = function (x, y, obj) { if (isGameRunning) { bike.jump(); } }; // Main game loop game.update = function () { if (!isGameRunning) return; // Update distance score distanceScore += 1; LK.setScore(Math.floor(distanceScore / 10)); scoreTxt.setText('Distance: ' + Math.floor(distanceScore / 10)); // Increase game speed gradually if (LK.ticks % 300 === 0) { gameSpeed += 0.5; } // Update ground segments for (var i = groundSegments.length - 1; i >= 0; i--) { var segment = groundSegments[i]; segment.speed = -gameSpeed; if (segment.x < -200) { segment.x = (groundSegments.length - 1) * 200; } } // Spawn obstacles and ramps if (distanceScore - lastObstacleSpawn > spawnDistance) { if (Math.random() < 0.7) { spawnObstacle(); } else { spawnRamp(); } lastObstacleSpawn = distanceScore; spawnDistance = 200 + Math.random() * 200; } // Update obstacles for (var i = obstacles.length - 1; i >= 0; i--) { var obstacle = obstacles[i]; obstacle.speed = -gameSpeed; // Remove off-screen obstacles if (obstacle.x < -100) { obstacle.destroy(); obstacles.splice(i, 1); continue; } // Collision detection if (bike.intersects(obstacle)) { // Game over isGameRunning = false; LK.getSound('crash').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); return; } } // Update ramps for (var i = ramps.length - 1; i >= 0; i--) { var ramp = ramps[i]; ramp.speed = -gameSpeed; // Remove off-screen ramps if (ramp.x < -100) { ramp.destroy(); ramps.splice(i, 1); continue; } // Ramp boost effect if (bike.intersects(ramp) && bike.isGrounded) { bike.velocityY = bike.jumpPower * 1.2; bike.isGrounded = false; } } // Check if bike fell off the track if (bike.y > groundLevel + 200) { isGameRunning = false; LK.getSound('crash').play(); LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,233 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Bike = Container.expand(function () {
+ var self = Container.call(this);
+ var bikeBody = self.attachAsset('bike', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var frontWheel = self.attachAsset('wheel', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 25,
+ y: 15
+ });
+ var backWheel = self.attachAsset('wheel', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: -25,
+ y: 15
+ });
+ self.velocityY = 0;
+ self.gravity = 0.8;
+ self.jumpPower = -18;
+ self.isGrounded = false;
+ self.groundY = 0;
+ self.jump = function () {
+ if (self.isGrounded) {
+ self.velocityY = self.jumpPower;
+ self.isGrounded = false;
+ LK.getSound('jump').play();
+ }
+ };
+ self.update = function () {
+ // Apply gravity
+ self.velocityY += self.gravity;
+ self.y += self.velocityY;
+ // Ground collision
+ if (self.y >= self.groundY) {
+ self.y = self.groundY;
+ self.velocityY = 0;
+ self.isGrounded = true;
+ }
+ // Animate wheels
+ frontWheel.rotation += 0.3;
+ backWheel.rotation += 0.3;
+ // Bike tilt based on velocity
+ bikeBody.rotation = self.velocityY * 0.02;
+ };
+ return self;
+});
+var GroundSegment = Container.expand(function () {
+ var self = Container.call(this);
+ var groundGraphics = self.attachAsset('ground', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = -8;
+ self.update = function () {
+ self.x += self.speed;
+ };
+ return self;
+});
+var Obstacle = Container.expand(function () {
+ var self = Container.call(this);
+ var obstacleGraphics = self.attachAsset('obstacle', {
+ anchorX: 0.5,
+ anchorY: 1
+ });
+ self.speed = -8;
+ self.update = function () {
+ self.x += self.speed;
+ };
+ return self;
+});
+var Ramp = Container.expand(function () {
+ var self = Container.call(this);
+ var rampGraphics = self.attachAsset('ramp', {
+ anchorX: 0.5,
+ anchorY: 1
+ });
+ self.speed = -8;
+ self.update = function () {
+ self.x += self.speed;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x87CEEB
+});
+
+/****
+* Game Code
+****/
+var bike;
+var obstacles = [];
+var ramps = [];
+var groundSegments = [];
+var gameSpeed = 8;
+var distanceScore = 0;
+var isGameRunning = true;
+var groundLevel = 2400;
+var lastObstacleSpawn = 0;
+var spawnDistance = 300;
+// Create score display
+var scoreTxt = new Text2('Distance: 0', {
+ size: 80,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Create bike
+bike = game.addChild(new Bike());
+bike.x = 400;
+bike.y = groundLevel;
+bike.groundY = groundLevel;
+// Initialize ground segments
+function createGroundSegments() {
+ for (var i = 0; i < 15; i++) {
+ var segment = new GroundSegment();
+ segment.x = i * 200;
+ segment.y = groundLevel + 40;
+ groundSegments.push(segment);
+ game.addChild(segment);
+ }
+}
+createGroundSegments();
+// Spawn obstacle
+function spawnObstacle() {
+ var obstacle = new Obstacle();
+ obstacle.x = 2200;
+ obstacle.y = groundLevel;
+ obstacle.speed = -gameSpeed;
+ obstacles.push(obstacle);
+ game.addChild(obstacle);
+}
+// Spawn ramp
+function spawnRamp() {
+ var ramp = new Ramp();
+ ramp.x = 2200;
+ ramp.y = groundLevel;
+ ramp.speed = -gameSpeed;
+ ramps.push(ramp);
+ game.addChild(ramp);
+}
+// Game input
+game.down = function (x, y, obj) {
+ if (isGameRunning) {
+ bike.jump();
+ }
+};
+// Main game loop
+game.update = function () {
+ if (!isGameRunning) return;
+ // Update distance score
+ distanceScore += 1;
+ LK.setScore(Math.floor(distanceScore / 10));
+ scoreTxt.setText('Distance: ' + Math.floor(distanceScore / 10));
+ // Increase game speed gradually
+ if (LK.ticks % 300 === 0) {
+ gameSpeed += 0.5;
+ }
+ // Update ground segments
+ for (var i = groundSegments.length - 1; i >= 0; i--) {
+ var segment = groundSegments[i];
+ segment.speed = -gameSpeed;
+ if (segment.x < -200) {
+ segment.x = (groundSegments.length - 1) * 200;
+ }
+ }
+ // Spawn obstacles and ramps
+ if (distanceScore - lastObstacleSpawn > spawnDistance) {
+ if (Math.random() < 0.7) {
+ spawnObstacle();
+ } else {
+ spawnRamp();
+ }
+ lastObstacleSpawn = distanceScore;
+ spawnDistance = 200 + Math.random() * 200;
+ }
+ // Update obstacles
+ for (var i = obstacles.length - 1; i >= 0; i--) {
+ var obstacle = obstacles[i];
+ obstacle.speed = -gameSpeed;
+ // Remove off-screen obstacles
+ if (obstacle.x < -100) {
+ obstacle.destroy();
+ obstacles.splice(i, 1);
+ continue;
+ }
+ // Collision detection
+ if (bike.intersects(obstacle)) {
+ // Game over
+ isGameRunning = false;
+ LK.getSound('crash').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ return;
+ }
+ }
+ // Update ramps
+ for (var i = ramps.length - 1; i >= 0; i--) {
+ var ramp = ramps[i];
+ ramp.speed = -gameSpeed;
+ // Remove off-screen ramps
+ if (ramp.x < -100) {
+ ramp.destroy();
+ ramps.splice(i, 1);
+ continue;
+ }
+ // Ramp boost effect
+ if (bike.intersects(ramp) && bike.isGrounded) {
+ bike.velocityY = bike.jumpPower * 1.2;
+ bike.isGrounded = false;
+ }
+ }
+ // Check if bike fell off the track
+ if (bike.y > groundLevel + 200) {
+ isGameRunning = false;
+ LK.getSound('crash').play();
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.showGameOver();
+ }
+};
\ No newline at end of file