我正在用pygame创建一个游戏,我想在关卡的末尾显示“关卡完成”的文本。我想在文本被删除后创建一个延迟,这样它就会显示几秒钟。然而,在我的文本显示之前,延迟一直在发生,尽管代码行在文本被blitted之后。这是我的游戏的链接:
我尝试使用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()
我希望暂停发生在文本显示之后,但它总是发生在它之前。因此,我的文本在移动到下一层之前只显示了几分之一秒,几乎看不见。
发布于 2019-06-21 01:26:48
,但它总是让停顿发生在我的文本之前。
文本在延迟之前绘制,但在显示器上不可见。
当然,在pygame.time.delay()
之前,您必须通过pygame.display.flip()
或pygame.display.update()
更新显示。
此外,您应该处理事件(例如pygame.event.pump()
) -某些系统需要事件处理才能进行显示更新。
pygame.display.flip()
pygame.event.pump()
pygame.time.delay(2000)
pygame.event.pump()
https://stackoverflow.com/questions/56690786
复制相似问题