Я слежу за серией уроков "Java Программирование: давайте создадим игру" от RealTutsGML на YouTube. Я создал этот класс под названием SmartEnemy, объект которого должен следовать за игроком. Однако когда я запускаю игру и включается SmartEnemy, большую часть времени он перемещается в верхнюю часть экрана и просто остается там. Я пытался найти ответ в Google и использовать предложения в комментариях к видео, но ничего не помогло. У кого-нибудь есть идея, что я могу делать неправильно? Вот код в SmartEnemy, который заставляет его следовать за игроком.
public void tick() {
x += velX;
y += velY;
float diffX = x - player.getX() - 16;
float diffY = x - player.getY() - 16;
float distance = (float) Math.hypot((double)(x - player.getX()), (double)(y - player.getY()));
velX = (float) ((-1.0/distance) * diffX);
velY = (float) ((-1.0/distance) * diffY);
if(y <= 0 || y >= Game.HEIGHT - 32) velY *= -1;
if(x <= 0 || x >= Game.WIDTH - 16) velX *= -1;
handler.addObject(new Trail(x, y, ID.Trail, Color.green, 16, 16, 0.02F, handler));
}