如何在Pygame中达到特定情况时停止计时器

时间:2019-12-03 01:26:47

标签: python timer pygame

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

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

这是我写的检查时间的信息,我想在所有卡片都没被发现时停止此操作 有什么办法可以让我停下来吗?我进行了一些搜索,但没有找到适合我现在需要的东西。

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

希望能有所帮助

答案 1 :(得分:2)

函数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