У меня есть один или два проблемных вопроса. Я использую Pygame для создания игры для рисования.
У нас есть шары, прыгающие внутри на поверхности, друг против друга и стен. С помощью мыши вы можете рисовать прямые линии, по которым отскакивают шары.
Шары нарисованы с использованием pygame.image, поскольку у нас есть ball.png, покрывающий поверхность и прямоугольник шаров. Но для строк мы просто используем pygame.draw.line (), который возвращает простые прямоугольники.
И моя самая большая проблема на данный момент:
Я решил нарисовать каждую линию на отдельном объекте Surface, а затем перенести их на более крупный «игровой холст». Это потому, что я хотел использовать обнаружение идеального столкновения пикселей, предоставленное здесь, а также surfarray.array_colorkey (), и для этого мне нужна нижележащая поверхность (шары имеют изображение Surface, возвращаемое pygame.image). Мне нужна поверхность для линий, чтобы я мог использовать аспект прозрачности алгоритма столкновения, иначе шары будут отскакивать от прямоугольников, обертывающих линии.
Q1) Нет лучшего способа рисовать линии? Я хотел бы использовать что-то похожее на изображение или спрайт. Есть такое?
Q2) Если нет, как мне создать Поверхность для каждой линии, чтобы рисование линии на меньшей Поверхности с использованием координат из «игрового холста» было относительно простым, линия не обрезалась и пиксель идеальное столкновение описанный выше работает?
Q3) Если я полностью выключен / есть еще более эффективные способы делать столкновения, обнаружение, рисование и т. д. и т. д. Пожалуйста, я все уши.