簡體   English   中英

如何重置 pygame.time.Clock()?

[英]How do I reset pygame.time.Clock()?

我為介紹計算機編程制作了一個數獨游戲 class,我想在寒假期間通過添加一些新功能來擴展它。 其中第一個我想成為一個時鍾。 我在這里找到了一些幫助我在屏幕上實現時鍾系統的代碼,但現在我希望在按下重啟按鈕並且用戶返回主屏幕時重置時鍾。

任何幫助將不勝感激,我沒有與我當前的代碼結婚,我非常願意更改它。 我只是編程的新手,甚至不知道從哪里開始這樣的事情。

附件是我必須讓我的時鍾運行並將其顯示在我的屏幕上的當前代碼:

在此處輸入圖像描述

我嘗試“time = 0”和“time = pygame.clock.Time()”希望它能再次初始化時間並且計數將從 0 開始但它沒有用。 我尋找其他答案,但我是編程新手,它們對我來說意義不大。

我原以為時間會重置為 0.000 並重新開始計數,但它只是從停止的地方繼續計數

下面是我目前擁有的制作時鍾並將其顯示在游戲屏幕上的代碼:

clock = pygame.time.Clock()                                 # initialize clock
font = pygame.freetype.SysFont(None, 34)                    # font for clock
font.origin = True                                          # makes the font not shake around for whatever 

while True:

    if not game_over:
        screen.fill(pygame.Color(button_words_color), (0, 0, screen_dimension, 50))      
        ticks = pygame.time.get_ticks()
        millis = ticks % 1000
        seconds = int(ticks / 1000 % 60)
        minutes = int(ticks / 60000 % 24)
        out = '{minutes:02d}:{seconds:02d}:{millis}'.format(minutes=minutes, millis=millis, seconds=seconds)
        font.render_to(screen, (5, 35), out, pygame.Color(button_color))  # (5, 35) is where it's displayed)
        pygame.display.flip()
        clock.tick(60)

pygame.time.get_ticks()返回自pygame.init()以來的毫秒數,並且無法重置。 但是您可以記住並更改開始時間:

start_ticks = pygame.time.get_ticks()
while True:
    current_ticks = pygame.time.get_ticks()

    # [...]

    if not game_over:
        ticks = current_ticks - start_ticks
        # [...]

    else:
        start_ticks = current_ticks
        # [...]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM