Оба, кажется, обновляют либо весь экран, либо только часть экрана, но что делает и как?
В чем разница между screen.blit(player, (xpos, ypos)) и display.flip() в pygame?
Ответы (1)
blit()
не обновляет экран - рисует изображение в буфере.
update()/flip()
отправляет буфер на видеокарту, которая отображает его на мониторе.
Если у вас есть код с blit()
, но без update()/flip()
, он ничего не отобразит.
flip()
отправляет весь буфер на видеокарту. Вероятно, он может использовать оптимизированный метод, чтобы сделать это быстро.
update()
может получить список с помощью Rect()
и отправляет только часть буфера, так что это может быть быстрее. Но вы должны знать, какие детали вам нужно заменить. Иногда сложно правильно выбрать, какие области обновить.
См. документ: update(), flip()
person
furas
schedule
16.11.2017
Кстати: другие функции также рисуют в буфере — PyGame использует двойную буферизацию. См. в Википедии Двойная буферизация в компьютерной графике
- person furas; 16.11.2017
Я добавил изображение, чтобы ответить
- person furas; 11.12.2017