2012-05-14 7 views
2

Я программирую клон Tetris python для университетского курса. Он работает как шарм, пока я не пытаюсь изменить маршрут падающих блоков. Когда я ускоряю их или перемещаю блок влево или вправо, я получаю артефакты, показанные на скриншоте ниже.pygame sprites и pygame.display.flip() приводит к артефактам

код является одинаковым для каждого движения блока:

runningBlock.update() 
runningBlock.draw(field) 
screen.blit(field, (20, 20)) 
pygame.display.flip() 

в то время как метод обновления() просто устанавливает центр движущегося объекта в новое положение. экран - это серая область на снимке экрана, поле - это белая площадка на сером экране. Любая идея, что мне здесь не хватает?

BTW, частота кадров установлена ​​равной 30, не должно быть проблемой, не так ли?

screenshot

ответ

1

Хорошо получил. Я только что заполнил поле перед обновлением блоков:

field.fill((255, 255, 255)) 
runningBlock.update() 
runningBlock.draw(field) 
lyingBlocks.draw(field) 
screen.blit(field, (20, 20)) 
pygame.display.flip() 
Смежные вопросы