Производительность между переключением и обновлением в pygame

Я делаю игру и сейчас использую группы для рендеринга материала, однако для простоты и облегчения улучшений в будущем я буду рендерить эти спрайты вручную. Итак, что более производительно: использование переворота, одно обновление или обновление после каждого переворота?


person Simple coder    schedule 05.02.2019    source источник
comment
Простота? Если вы думаете, что группы - это непросто, вы делаете что-то неправильно. Они буквально предназначены для упрощения вашей жизни по рендерингу и обновлению объектов. Вы никогда не обновляете после каждого блита, вы все блитете, а затем обновляете / переворачиваете.   -  person Torxed    schedule 05.02.2019
comment
@Torxed Я сказал простоту, потому что будет легче улучшить код рендеринга   -  person Simple coder    schedule 06.02.2019
comment
Объясните, почему, потому что вы говорите об обратном опыте, который я имел с группами / партиями более 5 лет.   -  person Torxed    schedule 06.02.2019


Ответы (1)


Вызов update после каждого блита убьет вашу производительность. Просто вызывайте update или flip не более одного раза за кадр.


Если вы используете OPENGL или HWSURFACE, вам необходимо использовать flip, который обновляет весь экран.


Если вы используете программный дисплей (по умолчанию), используйте _ 7_ обеспечивает наилучшую производительность; если вы передадите функции список прямоугольников, чтобы она обновляла только те части экрана, которые действительно нуждаются в обновлении (YMMV, в зависимости от того, что вы на самом деле делаете и какое оборудование вы используете, но обычно это выход).

Pygame уже упрощает использование, предлагая _8 _ и LayeredDirty.

person sloth    schedule 06.02.2019