User prompt
уменьшить скорость препятствий до 28
Code edit (2 edits merged)
Please save this source code
User prompt
сделать отступ таймера справа на 200 пикселей
User prompt
переместить таймер в правый верхний угол
User prompt
исправить ошибку, когда игрок не двигается после нажатия по экрану
User prompt
если происходит удержание нажатия по экрану игрок следует за мышкой
User prompt
после того как игрок достиг цели, он останавливается
User prompt
игрок двигается в направлении курсора, после нажатия по экрану
User prompt
игрок двигается, пока нажата и удерживается нажатие по экрану, иначе останавливается
User prompt
исправить ошибку, когда таймер начинается с 0.02, должен начинаться с 0.00
User prompt
выводить best score за игровую сессию в overlay
User prompt
выводить лучший счет за игровую сессию
User prompt
уменьшить скорость препятствий до 29
Code edit (3 edits merged)
Please save this source code
User prompt
увеличить скорость препятствий до 30
User prompt
final score записывается до десятичных чисел
Code edit (1 edits merged)
Please save this source code
User prompt
final score записывается в разряде 1.00
User prompt
final score выводить до сотого разряда
User prompt
final score выводить до сотых секунд
User prompt
сохранять очки, набранные игроком
User prompt
после того как таймер остановился, сохранять текст и выводить в overlay. LK.showGameOver();
User prompt
очки с таймером сохраняются и Add the text to the GUI overlay
User prompt
Add LK.showGameOver(); timerTxt
Code edit (3 edits merged)
Please save this source code
/**** * Classes ****/ // Obstacle class var Obstacle = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 0.5 }); // Set speed to 20 in a random direction within 360 degrees var angle = Math.random() * Math.PI * 2; // Random angle in radians self.speedX = Math.cos(angle) * 29; self.speedY = Math.sin(angle) * 29; self.move = function () { self.x += self.speedX; self.y += self.speedY; // Bounce off walls if (self.x < 145 || self.x > 1903) { self.speedX *= -1; } if (self.y < 145 || self.y > 2587) { self.speedY *= -1; } }; }); // Obstacle2 class var Obstacle2 = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle2', { anchorX: 0.5, anchorY: 0.5 }); // Set speed to 20 in a random direction within 360 degrees var angle = Math.random() * Math.PI * 2; // Random angle in radians self.speedX = Math.cos(angle) * 29; self.speedY = Math.sin(angle) * 29; self.move = function () { self.x += self.speedX; self.y += self.speedY; // Bounce off walls if (self.x < 145 || self.x > 1903) { self.speedX *= -1; } if (self.y < 145 || self.y > 2587) { self.speedY *= -1; } }; }); // Obstacle3 class var Obstacle3 = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle3', { anchorX: 0.5, anchorY: 0.5 }); // Set speed to 20 in a random direction within 360 degrees var angle = Math.random() * Math.PI * 2; // Random angle in radians self.speedX = Math.cos(angle) * 29; self.speedY = Math.sin(angle) * 29; self.move = function () { self.x += self.speedX; self.y += self.speedY; // Bounce off walls if (self.x < 145 || self.x > 1903) { self.speedX *= -1; } if (self.y < 145 || self.y > 2587) { self.speedY *= -1; } }; }); // Obstacle4 class var Obstacle4 = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle4', { anchorX: 0.5, anchorY: 0.5 }); // Set speed to 20 in a random direction within 360 degrees var angle = Math.random() * Math.PI * 2; // Random angle in radians self.speedX = Math.cos(angle) * 29; self.speedY = Math.sin(angle) * 29; self.move = function () { self.x += self.speedX; self.y += self.speedY; // Bounce off walls if (self.x < 145 || self.x > 1903) { self.speedX *= -1; } if (self.y < 145 || self.y > 2587) { self.speedY *= -1; } }; }); // Assets will be automatically created based on usage in the code. // Player class var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 32; self.move = function (direction) { if (direction === 'left' && self.x > 145) { self.x -= self.speed; } else if (direction === 'right' && self.x < 1903) { self.x += self.speed; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xFFFFFF // Init game with white background }); /**** * Game Code ****/ var obstacle3 = game.addChild(new Obstacle3()); obstacle3.x = obstacle3.width / 2 + 150; // Position at the left edge of the screen obstacle3.y = 2732 - obstacle3.height / 2 - 150; // Position at the bottom edge of the screen; var obstacle4 = game.addChild(new Obstacle4()); obstacle4.x = 2048 - obstacle4.width / 2 - 150; // Position at the right edge of the screen obstacle4.y = 2732 - obstacle4.height / 2 - 150; // Position at the bottom edge of the screen; LK.on('tick', function () { // Calculate the distance between the player and the target position var dx = targetPosition.x - player.x; var dy = targetPosition.y - player.y; var distance = Math.sqrt(dx * dx + dy * dy); // If the player is not already at the target position and the screen is being pressed if (isScreenPressed && distance > player.speed) { // Calculate the direction vector var directionX = dx / distance; var directionY = dy / distance; // Move the player towards the target position player.x += directionX * player.speed; player.y += directionY * player.speed; } // Check if the new position is within the screen boundaries if (player.x < 145) { player.x = 145; } else if (player.x > 1903) { player.x = 1903; } if (player.y < 145) { player.y = 145; } else if (player.y > 2587) { player.y = 2587; } // Move the obstacles obstacle.move(); obstacle2.move(); obstacle3.move(); obstacle4.move(); // Check if player intersects with any obstacle if (player.intersects(obstacle) || player.intersects(obstacle2) || player.intersects(obstacle3) || player.intersects(obstacle4)) { // Flash screen red for 1 second (1000ms) to show we are dead. LK.effects.flashScreen(0xff0000, 1000); // Save the player's score in decimal format LK.setScore(parseFloat(timer.toFixed(10))); // Show game over. The game will be automatically paused while game over is showing. LK.showGameOver(); } }); var player = game.addChild(new Player()); player.x = 2048 / 2; // Center horizontally player.y = 2732 / 2; // Center vertically var targetPosition = { x: player.x, y: player.y }; // Store the target position for the player var isScreenPressed = false; // Flag to track if the screen is being pressed game.on('down', function (obj) { isScreenPressed = true; // Set the flag to true when the screen is pressed }); game.on('move', function (obj) { if (isScreenPressed) { targetPosition = obj.event.getLocalPosition(game); // Set the target position to the cursor position if the screen is being pressed } }); game.on('up', function (obj) { isScreenPressed = false; // Set the flag to false when the screen is released targetPosition = { x: player.x, y: player.y }; // Set the target position to the player's current position }); // Add a timer in the top left corner var timerTxt = new Text2('0', { size: 75, fill: "#000000" }); LK.gui.topLeft.addChild(timerTxt); var timer = 0; var frameCount = 0; LK.on('tick', function () { frameCount++; if (frameCount > 1) { timer += 1 / 60; // increment timer by the time for one frame } timerTxt.setText(timer.toFixed(2)); // update the timer text to include hundredths of a second }); var obstacle = game.addChild(new Obstacle()); obstacle.x = 2048 - obstacle.width / 2 - 150; // Position at the right edge of the screen, 200 pixels away from the edge obstacle.y = obstacle.height / 2 + 150; // Position at the top edge of the screen, 200 pixels away from the edge; var obstacle2 = game.addChild(new Obstacle2()); obstacle2.x = obstacle2.width / 2 + 150; // Position at the left edge of the screen obstacle2.y = obstacle2.height / 2 + 150; // Position at the top edge of the screen
===================================================================
--- original.js
+++ change.js
@@ -137,18 +137,22 @@
// Calculate the direction vector
var directionX = dx / distance;
var directionY = dy / distance;
// Move the player towards the target position
- var newX = player.x + directionX * player.speed;
- var newY = player.y + directionY * player.speed;
- // Check if the new position is within the screen boundaries
- if (newX >= 145 && newX <= 1903) {
- player.x = newX;
- }
- if (newY >= 145 && newY <= 2587) {
- player.y = newY;
- }
+ player.x += directionX * player.speed;
+ player.y += directionY * player.speed;
}
+ // Check if the new position is within the screen boundaries
+ if (player.x < 145) {
+ player.x = 145;
+ } else if (player.x > 1903) {
+ player.x = 1903;
+ }
+ if (player.y < 145) {
+ player.y = 145;
+ } else if (player.y > 2587) {
+ player.y = 2587;
+ }
// Move the obstacles
obstacle.move();
obstacle2.move();
obstacle3.move();
квадрат со злым лицом.. 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.
квадрат со злым лицом. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.