Начинающая проблема с Pygame - PullRequest
2 голосов
/ 02 мая 2011

Я только начинаю очень простой код Pygame, который рисует зеленую линию на белом фоне.Тем не менее, я должен использовать pygame.display.flip (), чтобы он появился, но мне кажется, что мне придется использовать это каждый раз, когда я вносил изменения, и это кажется слишком непрактичным для меня, чтобы делать это правильно.Я что-то упустил?

Ответы [ 2 ]

3 голосов
/ 02 мая 2011

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

То, что вы хотите сделать, это вызывать pygame.display.flip() только один раз за кадр, а не после каждого изменения. Обычно это делается с помощью функции "draw", которая вызывается в конце кадра после выполнения физических манипуляций и правил игры, и flip() в конце draw.

3 голосов
/ 02 мая 2011

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

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