Code edit (1 edits merged)
Please save this source code
User prompt
облака появляются каждые 10 секунд, первое облако появляется на первой секунде
Code edit (1 edits merged)
Please save this source code
User prompt
добавить дополнительные облака, которые появляются каждые 10 сек
User prompt
облако движется справа на лево
User prompt
Please fix the bug: 'ReferenceError: cloud is not defined' in or related to this line: 'cloud.x += cloud.speedX;' Line Number: 141
User prompt
облако появляется в каждые случайные промежутки времени от 10 до 15 секунд
Code edit (1 edits merged)
Please save this source code
User prompt
облако появляется на случайной высоте в верхней части экрана
User prompt
увеличить размер облака в 2 раза
Code edit (4 edits merged)
Please save this source code
User prompt
При пересечении птицы и облака, на первом плане птица
User prompt
скорость облака - 5
User prompt
скорость облака должны быть -2
User prompt
The cloud object should move from right to left at a speed of -0.2
User prompt
add a cloud object on the right side of the screen
User prompt
изменять размеры птицы не по вертикали, а горизонтали
Code edit (1 edits merged)
Please save this source code
User prompt
после 10 очков, скорость препятствий случайно изменяется от -4 до -9
User prompt
Create obstacle every 24 ticks after 50 points
User prompt
Отображать наибольшее количество набранных баллов за игровую сессию в левом верхнем углу игры
User prompt
Please fix the bug: 'TypeError: LK.getHighScore is not a function' in or related to this line: 'var highestScore = Math.max(score, LK.getHighScore());' Line Number: 125
User prompt
сохранять самый наибольший набранный балл среде всех участников, которые играют в эту игру
User prompt
Запускать игру после кнопки "играть"
User prompt
добавить длительность меню 10 секунду
/****
* Classes
****/
// Assets will be automatically created based on usage in the code.
// Bird class
var Bird = Container.expand(function () {
var self = Container.call(this);
var birdGraphics = self.attachAsset('bird', {
anchorX: 0.5,
anchorY: 0.5
});
self.speedY = 10;
self.flyUp = false;
self.move = function () {
// Bird falls down
self.y += self.speedY;
// If bird is flying up, decrease its y position
if (self.flyUp) {
self.speedY -= 80;
if (self.speedY <= -10) {
self.flyUp = false;
}
} else {
self.speedY += 10;
if (self.speedY > 10) {
self.speedY = 11;
}
}
};
});
// Obstacle class
var Obstacle = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle', {
anchorX: 0.5,
anchorY: 0.5,
shape: 'ellipse'
});
self.speedX = -5;
self.move = function () {
// Obstacle moves from right to left
self.x += self.speedX;
// Rotate obstacle counterclockwise
self.rotation -= 0.17;
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB // Light blue background to simulate sky
});
/****
* Game Code
****/
// Start Menu
var startMenu = new Container();
var playButton = startMenu.addChild(LK.getAsset('playButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2
}));
var leaderboardButton = startMenu.addChild(LK.getAsset('leaderboardButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2 + 700
}));
game.addChild(startMenu);
// Add background to the game
var background = game.addChild(LK.getAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2048 / 2
}));
// Initialize game elements visibility
var gameStarted = false;
background.visible = gameStarted;
var bird = game.addChild(new Bird());
bird.x = 350; // Start in the middle of the screen horizontally
bird.y = 1366; // Start in the middle of the screen vertically
bird.visible = gameStarted;
// Ensure scoreTxt is defined before attempting to set its visibility
if (scoreTxt) {
scoreTxt.visible = gameStarted;
}
// Hide start menu after 10 seconds
LK.setTimeout(function () {
gameStarted = true;
startMenu.visible = false;
background.visible = gameStarted;
bird.visible = gameStarted;
if (scoreTxt) {
scoreTxt.visible = gameStarted;
}
}, 10000);
// Start game on play button press and update game elements visibility
playButton.on('down', function () {
gameStarted = true;
startMenu.visible = false;
background.visible = gameStarted;
bird.visible = gameStarted;
scoreTxt.visible = gameStarted;
// Reset score to 0 when game starts
score = 0;
scoreTxt.setText(score.toString());
// Remove existing obstacles
obstacles.forEach(function (obstacle) {
obstacle.destroy();
});
obstacles = [];
});
// Show leaderboard on leaderboard button press
leaderboardButton.on('down', function () {
// Placeholder for leaderboard display logic
console.log("Leaderboard button pressed. Implement display logic.");
});
// Add background to the game
var background = game.addChild(LK.getAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2048 / 2
}));
var bird = game.addChild(new Bird());
bird.x = 350; // Start in the middle of the screen horizontally
bird.y = 1366; // Start in the middle of the screen vertically
// Add touch event listener to make bird move up and down smoothly
game.on('down', function (obj) {
bird.flyUp = true;
bird.rotation += Math.PI / 2; // Rotate 90 degrees
bird.scale.y = 0.7; // Reduce bird size vertically by 10%
LK.setTimeout(function () {
bird.scale.y = 1; // Return bird to original size after 100ms
}, 100);
});
var obstacles = [];
var obstacleCreationCounter = 0;
var score = 0; // Add a variable to track the player's score
LK.on('tick', function () {
bird.move();
// Create a new obstacle every 42 ticks (approximately 0.7 seconds)
obstacleCreationCounter++;
if (score < 15 && obstacleCreationCounter >= 36 || score >= 15 && score < 30 && obstacleCreationCounter >= 30 || score >= 30 && obstacleCreationCounter >= 24) {
var newObstacle = game.addChild(new Obstacle());
newObstacle.x = 2048; // Start at the right edge of the screen
newObstacle.y = Math.random() * 2732; // Start at a random height
// Make every 10th obstacle move at a speed of -10
if (obstacles.length % 10 == 9) {
newObstacle.speedX = -13;
}
obstacles.push(newObstacle);
obstacleCreationCounter = 0;
}
// If the player's score is 13 or more, make the obstacles move up and down
if (score >= 13) {
for (var i = 0; i < obstacles.length; i++) {
var obstacle = obstacles[i];
obstacle.y += Math.sin(obstacle.x * 0.01) * 5; // Change the y position of the obstacle based on a sine wave
}
}
// Move each obstacle and check for collisions
for (var i = 0; i < obstacles.length; i++) {
var obstacle = obstacles[i];
obstacle.move();
// Check if bird has collided with the obstacle
var dx = bird.x - obstacle.x;
var dy = bird.y - obstacle.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance < bird.width / 2 + obstacle.width / 2) {
// Flash screen red for 1 second (1000ms) to show game over.
LK.effects.flashScreen(0xff0000, 1000);
// Show game over. The game will be automatically paused while game over is showing.
// Display the final score at the center of the screen
var gameOverScoreTxt = new Text2(score.toString(), {
size: 200,
fill: "#FFFFFF"
});
gameOverScoreTxt.anchor.set(0.5, 0.5); // Anchor to the center
gameOverScoreTxt.x = 2048 / 2; // Position at the center of the screen horizontally
gameOverScoreTxt.y = 2732 / 4; // Position at the center of the screen vertically
game.addChild(gameOverScoreTxt);
LK.showGameOver();
}
}
// Check if bird has fallen off the screen or risen above the screen
var dx = bird.x - 2048 / 2;
var dy = bird.y - 2670 / 2;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 3000 / 2) {
// Flash screen red for 1 second (1000ms) to show game over.
LK.effects.flashScreen(0xff0000, 1000);
// Show game over. The game will be automatically paused while game over is showing.
// Display the final score at the center of the screen
var gameOverScoreTxt = new Text2(score.toString(), {
size: 200,
fill: "#FFFFFF"
});
gameOverScoreTxt.anchor.set(0.5, 0.5); // Anchor to the center
gameOverScoreTxt.x = 2048 / 2; // Position at the center of the screen horizontally
gameOverScoreTxt.y = 2732 / 4; // Position at the center of the screen vertically
game.addChild(gameOverScoreTxt);
LK.showGameOver();
}
});
// Initialize bird and obstacles
// Yellow bird
// Brown obstacles;
var obstacle = game.addChild(new Obstacle());
obstacle.x = 2120; // Start at the right edge of the screen
obstacle.y = Math.random() * 2732; // Start at a random height;
// Initialize score counter
var score = 0;
var scoreTxt = new Text2(score.toString(), {
size: 100,
fill: "#FFFFFF"
});
scoreTxt.anchor.set(1, 0); // Anchor to the top right corner
LK.gui.topRight.addChild(scoreTxt);
// Update score every 2 seconds
LK.setInterval(function () {
score++;
scoreTxt.setText(score.toString());
}, 1300);
голубое небо, горизонт и зеленое поле. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Мультяшный квадратный сюрикен. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
button leaderboards. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.