Почему pygame.draw.shape возвращает Rect?

Хотя я понимаю, что цель функции рисования - рисовать на определенной поверхности, я не понимаю, почему она просто не возвращает объект pygame.Surface, который вы можете позже перенести на поверхность, когда это необходимо. До сих пор это было очень неудобно, когда я просто хотел создать поверхность, а потом нарисовать ее на чем-нибудь еще.

Есть ли способ получить аналогичные функции для возврата объекта поверхности вместо того, чтобы выполнять этот дополнительный шаг и рисовать непосредственно на другой поверхности?


person Dan Doe    schedule 18.03.2013    source источник
comment
Почему он все время не создает поверхность? Потому что создание новой поверхности, если она вам не нужна, происходит медленно. Вы можете написать функцию, которая создает новую поверхность, вызывает рисование и возвращает ее за один раз.   -  person ninMonkey    schedule 18.03.2013


Ответы (1)


Чтобы создать поверхность с желаемой формой, вместо того, чтобы рисовать на исходной поверхности, вы рисуете на другой поверхности, а затем можете преобразовать ее в исходную.

Что касается того, почему функции рисования возвращают прямоугольник, он служит для дальнейшей оптимизации вашего кода, обновляя только те части экрана, которые необходимо обновить. То, как вы это делаете, каждый раз, когда вы хотите нарисовать что-то на экране, вы добавляете прямоугольник, который он возвращает, в список, и когда вы идете обновлять экран, вы делаете это так:

pygame.display.update(rect_list)
person alexpinho98    schedule 01.04.2013