我正在pygame中创建一个游戏,我想在关卡末尾显示“关卡完成”文本。我想在文本变白之后创建一个延迟,以便将其显示几秒钟。但是,尽管代码行在文本变白之后,但在显示我的文本之前一直发生延迟。这是我的游戏的链接:
我尝试使用pygame.time.delay()
函数,但是它使暂停发生在文本之前。
# lines 101-107 on main.py
screen.blit(field, field_rect)
core_text(screen, "Level Complete!", 100, 150, 200, BLACK)
pygame.time.delay(2000)
screen.blit(swamp, swamp_rect)
level_2() # function to initiate level 2
clock.tick(20)
pygame.display.flip()
我希望在文本显示后出现暂停,但是暂停总是在出现之前发生。结果,我的文字只显示了几分之一秒,然后才移到下一级,几乎看不到。
答案 0 :(得分:1)
但是它使停顿发生在我的文字之前。
文本是在延迟之前绘制的,但是在显示屏上不可见。
当然,您必须在pygame.display.flip()
之前通过pygame.display.update()
或pygame.time.delay()
更新显示。
此外,您应该处理事件(例如pygame.event.pump()
)-一些系统需要事件处理才能进行显示更新。
pygame.display.flip()
pygame.event.pump()
pygame.time.delay(2000)
pygame.event.pump()