当pygame达到某种情况时如何停止定时器

Posted

技术标签:

【中文标题】当pygame达到某种情况时如何停止定时器【英文标题】:How to stop timer in pygame when it reaches a certain situation 【发布时间】:2019-12-03 01:26:47 【问题描述】:

您好,我现在正在为记忆游戏(又名纸牌匹配游戏)编写代码,我正在使用 pygame 中的计时器来告诉玩家需要多长时间才能使每张纸牌被发现(完全匹配纸牌组中的每一对) )。

self.score = pygame.time.get_ticks() // 1000

这是我为检查时间而写的,我想在所有卡片都被揭开时停止 有什么办法可以让我停下来吗?我搜索了一下,但没有什么适合我现在需要的。

https://www.youtube.com/watch?v=9-6iDRyPoVg&feature=youtu.be 这就是它的样子。

谢谢!

【问题讨论】:

【参考方案1】:

函数pygame.time.get_ticks() 返回自调用pygame.init() 以来的毫秒数。

我认为更好的方法是记住第一次卡片点击的时间,然后将其与最后卡片点击的时间进行比较。

例如:

### Card was clicked
if ( game_start_time == 0 ):
    game_start_time = pygame.time.get_ticks()   # game start time

    ...


    if ( cards_left_covered == 0 ):
        # calculate the elapsed time
        game_end_time = pygame.time.get_ticks()
        self.score = ( game_end_time - game_start_time ) // 1000  # seconds

【讨论】:

【参考方案2】:

如果您希望计时器停止,请将毫秒参数设置为 0。当所有卡片都被覆盖时,您可能想说这样的话:cards_flipped_time = (pygame.time.get_ticks() - start_time)。

希望对你有所帮助

【讨论】:

我还将计时器打印为分数。这样做会改变屏幕上显示为分数的数字吗?因为它不应该改变。谢谢!!

以上是关于当pygame达到某种情况时如何停止定时器的主要内容,如果未能解决你的问题,请参考以下文章

(Pygame).blit将不显示While功能

如何创建一个倒数计时器,当屏幕关闭时停止并“等待”,重新打开时恢复。安卓

Flutter:当倒数计时器达到 0 时执行动作

JS动画之速度动画和透明度变化

定时器如何在pygame中工作? [复制]

如何停止在 C# 类中运行的计时器