Тректория движения пули в 2D
Есть такое решение для стрельбы как в enter the gungeon(пулька летит в сторону курсора мышки):
if (mouseState.LeftButton.Equals(ButtonState.Pressed) && oldMouseState.LeftButton.Equals(ButtonState.Released))
{
Vector2 destinantion = mouseState.Position.ToVector2() - position;
Vector2 speed = new Vector2(3, 3 * destinantion.Y / destinantion.X);
speed.Normalize();
//float x = 3 * (float)Math.Sqrt(destinantion.X * destinantion.X + destinantion.Y * destinantion.Y) / destinantion.Y;
bullets.Add(new Bullet(bulletTexture, position, speed * 6));
}
destination - расстояние от курсора мышки от игрока
speed - через тангенс высчитываю куда сдвигать пульку каждый тик
Дальше это все нормализуется и добавляется в пульку.
Но работает все это пока destination не отрицательный, если мышка по координатам левее игрока пульки летят в противоположную сторону(там все равно положительное число выходит).
Есть ли более красивое решение такого или можно ли как-то пофиксить это сейчас?