User prompt
После поворота добавить скорость разгона начиная 4 и до 7 для игрока и противника
User prompt
Please fix the bug: 'TypeError: LK.showPauseScreen is not a function. (In 'LK.showPauseScreen()', 'LK.showPauseScreen' is undefined)' in or related to this line: 'LK.showPauseScreen();' Line Number: 255
User prompt
Please fix the bug: 'TypeError: LK.pauseGame is not a function. (In 'LK.pauseGame()', 'LK.pauseGame' is undefined)' in or related to this line: 'LK.pauseGame();' Line Number: 255
User prompt
Если противник пересек 950 от центра, то игра останавливается на 1 секунду
User prompt
Please fix the bug: 'TypeError: undefined is not an object (evaluating 'localStorage.setItem')' in or related to this line: 'localStorage.setItem('score', LK.getScore());' Line Number: 246
User prompt
Please fix the bug: 'Script error.' in or related to this line: 'var score = localStorage.getItem('score') || '0';' Line Number: 255
User prompt
Сохранять количество набранных очков
Code edit (1 edits merged)
Please save this source code
User prompt
Сделать score черным
User prompt
Подвинуть score в правый верхний угол
Code edit (1 edits merged)
Please save this source code
User prompt
После смерти противника, прибавлять одну очко к score
User prompt
Выводить score вверху в центре
User prompt
Исправить ошибку, когда игрок после смерти противника двигается вертикально с неверным положении машины
User prompt
Исправить ошибку, когда игрок после смерти противника двигается по диагонали, а не вертикально Вверх
User prompt
Исправить ошибку, когда игрок после смерти противника двигается по диагонали, а не вертикально
User prompt
После смерти противника, игрок перемещается на начальную точки и двигается по вертикали
User prompt
Если противник пересек границу радиусом 950 от центра, то он и игрок появляется на точке респауна, при этом текущее направление у игрока сбрасывает
User prompt
Если противник пересек границу радиусом 950 от центра, то он и игрок появляется на точке респауна и начинают движение по вертикали друг к другу
User prompt
Если противник пересек границу радиусом 950 от центра, то он и игрок появляется на точке респауна
User prompt
При пересечении противником радиуса 950 от центра, противник моргает 2 секунды и потом появляется в месте возрождения
User prompt
При пересечении противником радиуса 950 от центра, противник появляется месте возрождения
User prompt
Сделать более точную проверку на пересечение игрока и противоика
User prompt
Исправить ошибку, когда противники при повороте не скользят
User prompt
Исправить ошибку, когда все противники остановились и перестали преследовать ближайшую цель
/****
* Classes
****/
// Assets will be automatically created based on usage in the code.
// Car class
var Car = Container.expand(function () {
var self = Container.call(this);
// Attach a car asset
var carGraphics = self.attachAsset('car', {
anchorX: 0.5,
anchorY: 0.5
});
self.previousTouchPosition = null;
self.speedX = 0;
self.speedY = 0;
// Move car based on its speed
self.move = function () {
if (self.slidingDuration > 0) {
self.x += self.speedX;
self.y += self.speedY;
self.slidingDuration--;
if (self.slidingDuration === 0) {
self.speedX = Math.sin(self.rotation) * 7;
self.speedY = -Math.cos(self.rotation) * 7;
}
} else {
self.x += self.speedX;
self.y += self.speedY;
}
};
// Prevent the car from moving in the opposite direction when it hits the wall
self.checkBounds = function () {
if (self.x < 0) {
self.x += 200;
} else if (self.x > 2048) {
self.x -= 200;
}
if (self.y < 0) {
self.y += 200;
} else if (self.y > 2732) {
self.y -= 200;
}
};
self.slidingDuration = 0;
self.setDirection = function (direction) {
if (direction === 'left') {
self.rotation -= 0.07;
self.speedX += Math.sin(self.rotation) * 0.07;
self.speedY += -Math.cos(self.rotation) * 0.07;
self.slidingDuration = 20; // Set sliding duration to 0.5 second (30 frames)
} else if (direction === 'right') {
self.rotation += 0.07;
self.speedX += Math.sin(self.rotation) * 0.07;
self.speedY += -Math.cos(self.rotation) * 0.07;
self.slidingDuration = 20; // Set sliding duration to 0.5 second (30 frames)
}
// Limit the speed to prevent the car from sliding too much
if (self.slidingDuration > 0) {
self.speedX = Math.min(Math.max(self.speedX, -7), 7);
self.speedY = Math.min(Math.max(self.speedY, -7), 7);
self.slidingDuration--;
} else {
self.speedX = Math.sin(self.rotation) * 7;
self.speedY = -Math.cos(self.rotation) * 7;
}
};
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
// Attach an enemy asset
var enemyGraphics = self.attachAsset('enemy1', {
anchorX: 0.5,
anchorY: 0.5
});
self.speedX = 0;
self.speedY = 0;
// Move enemy based on its speed
self.move = function () {
self.x += self.speedX;
self.y += self.speedY;
};
// Prevent the enemy from moving in the opposite direction when it hits the wall
self.checkBounds = function () {
if (self.x < 0) {
self.x += 200;
} else if (self.x > 2048) {
self.x -= 200;
}
if (self.y < 0) {
self.y += 200;
} else if (self.y > 2732) {
self.y -= 200;
}
};
self.followNearestTarget = function (targets) {
var nearestTarget = null;
var nearestDistance = Infinity;
targets.forEach(function (target) {
var dx = target.x - self.x;
var dy = target.y - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance < nearestDistance) {
nearestDistance = distance;
nearestTarget = target;
}
});
if (nearestTarget) {
var dx = nearestTarget.x - self.x;
var dy = nearestTarget.y - self.y;
var length = Math.sqrt(dx * dx + dy * dy);
if (length > 0) {
dx /= length;
dy /= length;
}
self.speedX = dx * 7;
self.speedY = dy * 7;
var angle = Math.atan2(dy, dx);
self.rotation = angle - Math.PI / 2;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xFFFFFF // Init game with white background
});
/****
* Game Code
****/
// Global variables
var cars = [];
// Create a single car
var car = new Car();
car.x = 2048 / 2; // Center of the screen
car.y = 2280; // Bottom of the screen
car.speedX = 0;
car.speedY = -7;
cars.push(car);
game.addChildAt(car, game.children.length);
// Create an enemy car
var enemy = new Enemy();
enemy.x = 2048 / 2; // Center of the screen
enemy.y = 450; // Top of the screen
enemy.speedX = 0;
enemy.speedY = 7;
cars.push(enemy);
game.addChildAt(enemy, game.children.length);
// Create an enemy2 car
var enemy2 = new Enemy();
enemy2.x = 2048 / 2 + 850; // Right side of the circle
enemy2.y = 1366; // Top of the screen
enemy2.speedX = -7; // Set initial horizontal speed
enemy2.speedY = 0;
enemy2.rotation = Math.PI / 2; // Rotate by 90 degrees
cars.push(enemy2);
game.addChildAt(enemy2, game.children.length);
// Create an enemy3 car
var enemy3 = new Enemy();
enemy3.x = 2048 / 2 - 850; // Left side of the circle
enemy3.y = 1366; // Top of the screen
enemy3.speedX = 7; // Set initial horizontal speed
enemy3.speedY = 0;
enemy3.rotation = -Math.PI / 2; // Rotate by -90 degrees
cars.push(enemy3);
game.addChildAt(enemy3, game.children.length);
// Create a background for the game
var background = LK.getAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2
});
game.addChildAt(background, 0);
// Create a circle in the center of the screen
var centerCircle = LK.getAsset('Circle', {
anchorX: 0.5,
// Center anchor x-coordinate
anchorY: 0.5,
// Center anchor y-coordinate
x: 2048 / 2,
// Center of the screen
y: 2732 / 2 // Center of the screen
});
game.addChildAt(centerCircle, 1);
// Handle game logic on each tick
LK.on('tick', function () {
cars.forEach(function (car) {
car.move();
car.checkBounds();
if (car instanceof Enemy) {
car.followNearestTarget(cars); // Follow the nearest target among all cars
}
// Check for collisions with other cars
cars.forEach(function (otherCar) {
if (car !== otherCar && car.intersects(otherCar, 80, 80)) {
// On collision, move both cars 200 pixels back in the direction opposite to the point of intersection
var dx = car.x - otherCar.x;
var dy = car.y - otherCar.y;
var distance = Math.sqrt(dx * dx + dy * dy);
var moveDistance = 60;
var moveStep = moveDistance / 10; // 60 frames for 1 second of smooth movement
var moveX = dx / distance * moveStep;
var moveY = dy / distance * moveStep;
var moveCounter = 0;
var moveInterval = LK.setInterval(function () {
car.x += moveX;
car.y += moveY;
otherCar.x -= moveX;
otherCar.y -= moveY;
moveCounter++;
if (moveCounter >= 10) {
LK.clearInterval(moveInterval);
}
}, 1000 / 60); // 60 FPS
}
});
// Check if the car is outside the circle
var distanceFromCenter = Math.sqrt(Math.pow(car.x - 2048 / 2, 2) + Math.pow(car.y - 2732 / 2, 2));
if (distanceFromCenter > 970 && car !== enemy && car !== enemy2 && car !== enemy3) {
LK.showGameOver();
}
});
});
// Add touch event listener to the game
var turnInterval;
var lastTouchPosition;
var isTouching = false; // Add a flag to check if the screen is being touched
var isOutside = false; // Add a flag to check if the mouse is outside the game
game.on('down', function (obj) {
// Get the position of the touch
var touchPosition = obj.event.getLocalPosition(game);
// Store the initial touch position
car.initialTouchPosition = touchPosition;
// Store the last touch position
lastTouchPosition = touchPosition;
isTouching = true; // Set the flag to true when the screen is being touched
isOutside = false; // Set the flag to false when the mouse enters the game
});
game.on('move', function (obj) {
// Get the position of the touch
var touchPosition = obj.event.getLocalPosition(game);
// Update the last touch position
lastTouchPosition = touchPosition;
// If there is a touch event and the last touch position is to the left of the initial touch position, turn the car to the left
if (!isOutside && isTouching && lastTouchPosition && car.initialTouchPosition) {
if (lastTouchPosition.x < car.initialTouchPosition.x) {
car.setDirection('left');
} else if (lastTouchPosition.x > car.initialTouchPosition.x) {
car.setDirection('right');
}
// Update the initial touch position
car.initialTouchPosition = lastTouchPosition;
} else if (isTouching && !isOutside) {
// If there is no touch event, the car moves straight
car.setDirection('straight');
}
});
game.on('up', function (obj) {
// Reset the last touch position when the touch is released
lastTouchPosition = null;
isTouching = false; // Set the flag to false when the touch is released
isOutside = true; // Set the flag to true when the mouse leaves the game
});
Лава мультяшная вид сверху плоская. Single Game Texture. In-Game asset. 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.
шины на асфальте после торможения для игры. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.