User prompt
Bg=grey
User prompt
Bg=Fly88
User prompt
Add 2 red lines in the middle of game
User prompt
Add 2 lines in the middle of game
User prompt
Bg=grey
User prompt
Bg=cyan
User prompt
At lines in the middle of game
User prompt
Add 2 black lines in the bottom
User prompt
Add 2 black lines in the middle of the game
User prompt
Add 2 lines in the middle of game
User prompt
Bg=grey
User prompt
Bg=black and white
User prompt
Bg=road
User prompt
Bg = light blue
User prompt
Bg = road
User prompt
Score = rock disappears
User prompt
If hero touch rock it disappears
User prompt
Decrease the quantity of obstacle
User prompt
Add rocks
User prompt
Remove rocks
User prompt
Rock = less quantity
User prompt
Increase the quantity of obstacle
User prompt
Les the rock
User prompt
Less rock
User prompt
Decrease in the quantity of rocks
/**** 
* Classes
****/ 
var Dot = Container.expand(function () {
	var self = Container.call(this);
	var dotGraphics = self.attachAsset('dot', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.update = function () {
		// Update logic for the dot, if needed
	};
});
// Assets will be automatically created and loaded by the LK engine based on their usage in the code.
// For example, if you use LK.getAsset('hero'), the engine will automatically create and load an asset with the id 'hero'.
// Hero class representing the player character
var Hero = Container.expand(function () {
	var self = Container.call(this);
	var heroGraphics = self.attachAsset('hero', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 8;
	self.update = function () {
		// Update logic for the hero, such as movement
	};
});
var LeftButton = Container.expand(function () {
	var self = Container.call(this);
	var buttonGraphics = self.attachAsset('leftButton', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.x = 150;
	self.y = 2732 - 150;
	self.down = function (x, y, obj) {
		hero.x -= hero.speed;
	};
});
// Obstacle class representing obstacles in the game
var Obstacle = Container.expand(function () {
	var self = Container.call(this);
	var obstacleGraphics = self.attachAsset('obstacle', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 8;
	self.update = function () {
		self.y += self.speed;
		if (self.y > 2732) {
			self.destroy();
		}
	};
});
var RightButton = Container.expand(function () {
	var self = Container.call(this);
	var buttonGraphics = self.attachAsset('rightButton', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.x = 2048 - 150;
	self.y = 2732 - 150;
	self.down = function (x, y, obj) {
		hero.x += hero.speed;
	};
});
var Rock = Container.expand(function () {
	var self = Container.call(this);
	var rockGraphics = self.attachAsset('rock', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 4;
	self.update = function () {
		self.y += self.speed;
		if (self.y > 2732) {
			self.destroy();
		}
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 // Init game with black background
});
/**** 
* Game Code
****/ 
// Initialize game variables
var leftButton = game.addChild(new LeftButton());
var rightButton = game.addChild(new RightButton());
var hero = game.addChild(new Hero());
hero.x = leftButton.x;
hero.y = leftButton.y - 200; // Adjusted to ensure hero spawns above the left button
var obstacles = [];
var dot = game.addChild(new Dot());
dot.x = 2048 / 2;
dot.y = 2732 / 2 - 100;
var score = 0;
var scoreTxt = new Text2('0', {
	size: 150,
	fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Function to handle game updates
game.update = function () {
	// Update hero
	hero.update();
	// Check if dot intersects with left button
	if (dot.intersects(leftButton)) {
		hero.x -= hero.speed;
		dot.x = leftButton.x;
		// dot.y = 2732 - 50; // Removed command to prevent dot from moving to the bottom
	}
	// Check if dot intersects with right button
	if (dot.intersects(rightButton)) {
		hero.x += hero.speed;
		dot.x = rightButton.x;
		dot.y = rightButton.y;
	}
	// Update obstacles
	for (var i = obstacles.length - 1; i >= 0; i--) {
		obstacles[i].update();
		if (hero.intersects(obstacles[i])) {
			if (obstacles[i] instanceof Rock) {
				obstacles[i].destroy();
				obstacles.splice(i, 1);
				score += 10; // Increase score by 10 when hero touches a rock
				scoreTxt.setText(score); // Update score text
			} else {
				LK.effects.flashScreen(0xff0000, 1000);
				LK.showGameOver();
			}
		}
	}
	// Spawn new obstacles
	if (LK.ticks % 30 == 0) {
		for (var j = 0; j < 2; j++) {
			// Spawn two obstacles at a time
			var newObstacle;
			if (Math.random() > 0.9) {
				newObstacle = new Obstacle();
			} else {
				newObstacle = new Rock();
			}
			newObstacle.x = Math.random() * 2048;
			newObstacle.y = 0;
			obstacles.push(newObstacle);
			game.addChild(newObstacle);
		}
	}
	// Check if hero touches the left or right edge of the screen
	if (hero.x <= 0 || hero.x >= 2048) {
		LK.effects.flashScreen(0xff0000, 1000);
		LK.showGameOver();
	}
	// Update score
};
// Handle touch events for hero movement
game.down = function (x, y, obj) {
	dot.x = x;
	dot.y = y;
};
game.move = function (x, y, obj) {
	dot.x = x;
	dot.y = y;
};
game.up = function (x, y, obj) {
	// No action needed on touch up
}; /**** 
* Classes
****/ 
var Dot = Container.expand(function () {
	var self = Container.call(this);
	var dotGraphics = self.attachAsset('dot', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.update = function () {
		// Update logic for the dot, if needed
	};
});
// Assets will be automatically created and loaded by the LK engine based on their usage in the code.
// For example, if you use LK.getAsset('hero'), the engine will automatically create and load an asset with the id 'hero'.
// Hero class representing the player character
var Hero = Container.expand(function () {
	var self = Container.call(this);
	var heroGraphics = self.attachAsset('hero', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 8;
	self.update = function () {
		// Update logic for the hero, such as movement
	};
});
var LeftButton = Container.expand(function () {
	var self = Container.call(this);
	var buttonGraphics = self.attachAsset('leftButton', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.x = 150;
	self.y = 2732 - 150;
	self.down = function (x, y, obj) {
		hero.x -= hero.speed;
	};
});
// Obstacle class representing obstacles in the game
var Obstacle = Container.expand(function () {
	var self = Container.call(this);
	var obstacleGraphics = self.attachAsset('obstacle', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 8;
	self.update = function () {
		self.y += self.speed;
		if (self.y > 2732) {
			self.destroy();
		}
	};
});
var RightButton = Container.expand(function () {
	var self = Container.call(this);
	var buttonGraphics = self.attachAsset('rightButton', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.x = 2048 - 150;
	self.y = 2732 - 150;
	self.down = function (x, y, obj) {
		hero.x += hero.speed;
	};
});
var Rock = Container.expand(function () {
	var self = Container.call(this);
	var rockGraphics = self.attachAsset('rock', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 4;
	self.update = function () {
		self.y += self.speed;
		if (self.y > 2732) {
			self.destroy();
		}
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 // Init game with black background
});
/**** 
* Game Code
****/ 
// Initialize game variables
var leftButton = game.addChild(new LeftButton());
var rightButton = game.addChild(new RightButton());
var hero = game.addChild(new Hero());
hero.x = leftButton.x;
hero.y = leftButton.y - 200; // Adjusted to ensure hero spawns above the left button
var obstacles = [];
var dot = game.addChild(new Dot());
dot.x = 2048 / 2;
dot.y = 2732 / 2 - 100;
var score = 0;
var scoreTxt = new Text2('0', {
	size: 150,
	fill: "#ffffff"
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Function to handle game updates
game.update = function () {
	// Update hero
	hero.update();
	// Check if dot intersects with left button
	if (dot.intersects(leftButton)) {
		hero.x -= hero.speed;
		dot.x = leftButton.x;
		// dot.y = 2732 - 50; // Removed command to prevent dot from moving to the bottom
	}
	// Check if dot intersects with right button
	if (dot.intersects(rightButton)) {
		hero.x += hero.speed;
		dot.x = rightButton.x;
		dot.y = rightButton.y;
	}
	// Update obstacles
	for (var i = obstacles.length - 1; i >= 0; i--) {
		obstacles[i].update();
		if (hero.intersects(obstacles[i])) {
			if (obstacles[i] instanceof Rock) {
				obstacles[i].destroy();
				obstacles.splice(i, 1);
				score += 10; // Increase score by 10 when hero touches a rock
				scoreTxt.setText(score); // Update score text
			} else {
				LK.effects.flashScreen(0xff0000, 1000);
				LK.showGameOver();
			}
		}
	}
	// Spawn new obstacles
	if (LK.ticks % 30 == 0) {
		for (var j = 0; j < 2; j++) {
			// Spawn two obstacles at a time
			var newObstacle;
			if (Math.random() > 0.9) {
				newObstacle = new Obstacle();
			} else {
				newObstacle = new Rock();
			}
			newObstacle.x = Math.random() * 2048;
			newObstacle.y = 0;
			obstacles.push(newObstacle);
			game.addChild(newObstacle);
		}
	}
	// Check if hero touches the left or right edge of the screen
	if (hero.x <= 0 || hero.x >= 2048) {
		LK.effects.flashScreen(0xff0000, 1000);
		LK.showGameOver();
	}
	// Update score
};
// Handle touch events for hero movement
game.down = function (x, y, obj) {
	dot.x = x;
	dot.y = y;
};
game.move = function (x, y, obj) {
	dot.x = x;
	dot.y = y;
};
game.up = function (x, y, obj) {
	// No action needed on touch up
};
:quality(85)/https://cdn.frvr.ai/670160189492c5c88dbaf450.png%3F3) 
 Right button. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
:quality(85)/https://cdn.frvr.ai/670164c69492c5c88dbaf49a.png%3F3) 
 :quality(85)/https://cdn.frvr.ai/6702207aa64e2946f50e9475.png%3F3) 
 Road. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
:quality(85)/https://cdn.frvr.ai/670220dda64e2946f50e9488.png%3F3) 
 Road Car. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
:quality(85)/https://cdn.frvr.ai/67022145a64e2946f50e9493.png%3F3) 
 Coin. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.