Нахождение x и y смещения точки после вращения - PullRequest
0 голосов
/ 10 ноября 2018

Привет, так что я застрял с проблемой. Моя старая система снарядов стреляла только в 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 стрельбу.

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

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

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

...