在写小游戏的时候,我在屏幕上加载了一个sprite,但是只有这个图片会一直闪烁,其他东西都很流畅。百度了一下竟然没人讲到相关的解决办法,于是在谷歌上搜了一下,发现有一个答案能解决我的问题。造成这个问题的原因很简单:程序中重复出现多个pygame.display.update()(或者pygame.display.flip() ),只能有一个。
这是我没有调整之前的部分代码,像这样的就会闪烁:
framerate = pygame.time.Clock()
group = pygame.sprite.Group()
group.add(mysprite)
framerate.tick(60)
while True:
gf.check_events(ai_settings, screen, char, stats, sb, play_button, quit_button, background, enemies, mysprite)
if stats.game_active:
gf.update_enemies(ai_settings, screen, sb, stats, char, background, enemies, play_button, quit_button)
ticks = pygame.time.get_ticks()
group.update(ticks)
group.draw(screen)
pygame.display.update()
gf.update_screen(ai_settings, screen, stats, sb, play_button, quit_button, aim, background, char, enemies, mysprite)
重点是上面循环体里面有一个pygame.display.update(),在update_screen里