我希望在一个玩家获胜时在屏幕上显示一条消息,让文本显示5秒钟,然后返回主菜单开始屏幕。使用延时但是,我的屏幕会暂停,然后在一个闪光灯中显示文本,然后立即转到开始屏幕。有没有更有效的方法让文本显示足够长的时间供阅读?在
下面是我用来实际显示消息的函数:
def winnerPlayerOne():
screen.fill(PINK)
winnerP1Message = winnerFont.render("Congrats Player 1. You Win!", True, WHITE)
screen.blit(winnerP1Message, ((400 - (winnerP1Message.get_width()/2)),(300 - (winnerP1Message.get_height()/2))))
pygame.display.update()
pygame.time.delay(5000)
startscreen()
下面是我如何在主循环中调用这个函数:
^{pr2}$任何帮助将不胜感激!在
试试
pygame.time.wait(5000)
。它应该以你期望的方式表现。它确实可以防止任何代码在后台运行,但是对于您的用例来说,这似乎不是一个问题。在本杰明的回答可能对你的情况很有效。但是如果你想要一些不影响游戏视觉效果的东西,我会考虑设置一个这样的计时器。。。在
在应用程序开始时将“timeWinScreen”初始化为所需的消息持续时间,并在玩家获胜时将“timer”设置为“0”,将gameWonScreen设置为“true”。使用已用=fpsClock.tick(FPS)将保留自上一个勾号后的时间值。你不需要在这个过程中使用它(你可以只使用FPS的一小部分),但是使用“elapsed”是一个很好的实践,因为它有助于平滑某些对象的动画。在
相关问题 更多 >
编程相关推荐