Code edit (3 edits merged)
Please save this source code
User prompt
сделать радиус поворота противника как у игрока
User prompt
противник всегда летит дулом вперед, если ему нужно повернуть, то поворот всегда происходит по радиусу 100
User prompt
всегда при преследовании игрока противнику нужно лететь дулом вперед
User prompt
для того чтобы противнику изменить направление, нужно сначала плавно развернуться в сторону направления по общей механике
User prompt
радиус поворота у противника 2 градуса
User prompt
если противнику нужно изменить направление, то он поворачивается как в условиях у игрока
User prompt
исправить ошибку, когда бот не вращается 1 градус при преследовании игрока
User prompt
скорость и скорость разворота у противника равны 5
Code edit (1 edits merged)
Please save this source code
User prompt
вращение противника с левого края объекта
User prompt
вращение enemy происходит с центра изображения, а не с краю
User prompt
Add 1.5 degrees (in radians) for clockwise and counter-clockwise rotation enemy
User prompt
исправить ошибку, когда при повторном преследовании игрока, самолет начинает движение обратно, а не пытается сделать разворот по направлению движения
User prompt
если противнику нужно изменить направление движение, до сделать это против направлению движения
User prompt
если противнику нужно изменить направление движение, до сделать это по направлению движения
User prompt
сделать плавные повороты у противника по центру изображения 1 градус
User prompt
сделать плавные повороты у противника по центру изображения
User prompt
когда противник преследует игрока, условия поворотов должны быть как у игрока var angle = Math.atan2(plane1.speedY, plane1.speedX); angle -= Math.PI / 60; // Subtract 1.5 degrees (in radians) for counter-clockwise rotation plane1.speedX = Math.cos(angle) * 7; plane1.speedY = Math.sin(angle) * 7; plane1.rotation -= Math.PI / 60; // Rotate the plane counter-clockwise var angle = Math.atan2(plane1.speedY, plane1.speedX); angle += Math.PI / 60; // Add 1.5 degrees (in radians) for clockwise rotation plane1.speedX = Math.cos(angle) * 7; plane1.speedY = Math.sin(angle) * 7; plane1.rotation += Math.PI / 60; // Rotate the plane clockwise
User prompt
добавить механику поворотов противника как у игрока
User prompt
Please fix the bug: 'ReferenceError: isTouchingLeft is not defined' in or related to this line: 'if (isTouchingLeft) {' Line Number: 275
User prompt
добавить механику поворотов противнику как у игрока, но без условий нажатия по экрану
User prompt
при изменении направления, противник разворачивается по окружности по 1 градусу в направлении движения
User prompt
при изменении направления, противник разворачивается по окружности в направлении движения
User prompt
противник, когда временно не преследует игрока а меняет направление на 3 секунды, может изменить направление на случайное +- 15 градусов, от текущего направления
===================================================================
--- original.js
+++ change.js
@@ -41,20 +41,19 @@
} else if (self.y > 2752 - self.height) {
self.y = 2752 - self.height;
self.speedY = 0;
}
- // Rotate the enemy image smoothly, the right side sets the direction of the enemy
- var targetAngle = Math.atan2(-self.speedY, -self.speedX);
- var diff = targetAngle - enemyGraphics.rotation;
- if (diff > Math.PI) {
- diff -= 2 * Math.PI;
- } else if (diff < -Math.PI) {
- diff += 2 * Math.PI;
- }
- if (diff > 0) {
- enemyGraphics.rotation += Math.min(diff, Math.PI / 180);
+ // Rotate the enemy image in a circular motion towards the new direction
+ var targetAngle = Math.atan2(self.speedY, self.speedX) + Math.PI; // Adjust for enemy's forward direction
+ var currentAngle = enemyGraphics.rotation;
+ // Calculate shortest path to target angle
+ var angleDifference = targetAngle - currentAngle;
+ angleDifference -= Math.floor((angleDifference + Math.PI) / (2 * Math.PI)) * (2 * Math.PI);
+ // Rotate smoothly towards the target angle
+ if (angleDifference > 0) {
+ enemyGraphics.rotation += Math.min(angleDifference, Math.PI / 30); // Rotate clockwise
} else {
- enemyGraphics.rotation += Math.max(diff, -Math.PI / 180);
+ enemyGraphics.rotation += Math.max(angleDifference, -Math.PI / 30); // Rotate counter-clockwise
}
};
});
// Plane1 class
снаряд от пушки. 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.
Нажатие по экрану. Палец. Мультяшный. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.