Я совершенно новичок в pygame и пытаюсь сделать платформер. Я также планирую добавить в него возможность многопользовательской игры с использованием сокетов. Игроки подобны танкам, которые могут прыгать, и вы можете перемещать указатель мыши, чтобы направить пушку танка в направлении курсора и стрелять, когда вы щелкаете мышью.
Я нарисовал прямоугольник, который является телом танк и линия от центра прямоугольника до позиции курсора, которая должна быть орудием танка. Теперь нарисованная линия не зафиксирована, если я отведу указатель мыши от резервуара, длина линии будет следовать за курсором мыши. Вот как это выглядит:
Понятия не имею, как сделать фиксированную длину, я сделал какую-то математическую иллюстрацию проблемы, которая может помочь: Где A - центр танка, B - позиция мыши, R - длина орудия танка, а C - конечная точка орудия танка. . Цель состоит в том, чтобы получить C при заданных A, B и r, при этом также принимая во внимание, что расстояние между A и B может быть меньше радиуса (потому что мышь может go где угодно). Хотя я не уверен, что иллюстрация правильная, потому что возможно, что мышь может войти в круг, и, честно говоря, я запутался дальше ..
И последнее, есть ли лучший способ реализовать столкновение? Потому что мое решение состоит в том, чтобы просто сохранить координаты каждой платформы и просто выполнить инструкции if, например, следующим образом:
if playerY> platform1Y: перестать падать
if playerX> platform2X: перестать двигаться влево
if playerY
if playerX