Нахождение x и y смещения точки после вращения

Привет, поэтому я застрял с проблемой. Моя старая система снарядов стреляла только в 4 направлениях, поэтому при нахождении нового смещения это было легко, мне просто нужно было обратить некоторые числа

           case "down":
                xOffset = hitbox.xOffset;
                yOffset = hitbox.yOffset;
                width = hitbox.width;
                height = hitbox.height;
                break;
            case "up":
                xOffset = hitbox.xOffset;
                yOffset = -hitbox.yOffset - hitbox.height;
                width = hitbox.width;
                height = hitbox.height;
                break;
            case "right":
                xOffset = hitbox.yOffset;
                yOffset = hitbox.xOffset;
                width = hitbox.height;
                height = hitbox.width;
                break;
            case "left":
                xOffset = -hitbox.yOffset - hitbox.height;
                yOffset = hitbox.xOffset;
                width = hitbox.height;
                height = hitbox.width;
                break;

Так что это сработало отлично, но теперь проблема в том, что я больше не использую ректы для своего хитбокса и использую круги, и я также теперь реализовал 360 стрельбу.

У меня есть функция, которая получает скорость х и у в зависимости от того, где я щелкнул, но у меня нет функции, чтобы получить новый хитбокс на его основе.

  newSpeed.x += speed * Math.cos(angle * Math.PI / 180);
  newSpeed.y += speed * Math.sin(angle * Math.PI / 180);

Как я могу сделать что-то подобное, чтобы получить новое смещение?

0 ответов

Другие вопросы по тегам