Здравствуйте! Хочу сделать игру на Pygame, в которой кораблик посередине экрана поворачивается в сторону курсора и, по нажатию на кнопку, стреляет в сторону курсора. Примерно так оно должно выглядеть:
Поворот кораблика я уже реализовал через арктангенс, а вот со стрельбой у меня возникли вопросы: как заставить эту "пульку" перемещаться одновременно по координатам икс и игрек так, чтобы "пулька" летела ровно в курсор и скорости по обеим осям координат были пропорциональны — т.е. чтобы пулька летела в любую сторону с одинаковой скоростью? Я слышал про метод с количеством итераций: (дельта икс) / (скорость движения по оси икс) = (кол-во итераций), а после (дельта икс/игрек) / (кол-во итераций) = (скорость движения по оси игрек):
Но у меня не получился этот способ: пулька летит либо по оси икс, либо под углом 45 градусов, или с бешеной скоростью мчит по оси игрек — не то, что мне нужно.
Также я видел, как используют вектора (pygame.math.Vector2), но как при их помощи "стрелять по двум осям" я не совсем понимаю. Мне кажется, что с векторами проще, но как реализовать перемещение по обеим осям при помощи вектора?
Поворот кораблика я уже реализовал через арктангенс, а вот со стрельбой у меня возникли вопросы: как заставить эту "пульку" перемещаться одновременно по координатам икс и игрек так, чтобы "пулька" летела ровно в курсор и скорости по обеим осям координат были пропорциональны — т.е. чтобы пулька летела в любую сторону с одинаковой скоростью? Я слышал про метод с количеством итераций: (дельта икс) / (скорость движения по оси икс) = (кол-во итераций), а после (дельта икс/игрек) / (кол-во итераций) = (скорость движения по оси игрек):
Но у меня не получился этот способ: пулька летит либо по оси икс, либо под углом 45 градусов, или с бешеной скоростью мчит по оси игрек — не то, что мне нужно.
Также я видел, как используют вектора (pygame.math.Vector2), но как при их помощи "стрелять по двум осям" я не совсем понимаю. Мне кажется, что с векторами проще, но как реализовать перемещение по обеим осям при помощи вектора?