2013-12-13 607 views
-1

我正在製作一個學校項目的遊戲,並且不能在我的生活中弄清楚如何在遊戲的定時器中放置在右上角。我希望它長達六十秒。我根本找不到任何語法。請幫助?pygame遊戲中的計時器

+0

ü沒有帶作出的任何事情了嗎? – adil

+0

不是。我有一個爲計時器設置的標籤,但根本無法解決這個問題。 – user3100581

+0

已經發布了三個答案......我的任何人都幫助你實現了你的目標,請接受它,因爲它可以幫助其他人解決同樣的問題,並且避免了重複問題的詢問。 – adil

回答

1

在你同時的beggining(我假設你正在使用一個與pygame的)這樣做

start = get_ticks() 

然後在你的同時結束(前右繪圖命令)做到這一點

end = get_ticks() -start 
if (end > 1000 /30) 
    wait(end) 

有了這個你的遊戲將運行在30秒/秒,這意味着你的同時將運行30次,你可以從那裏做一個計時器

如果你需要額外的幫助,只需要採取av在裏面,同時做良莠不齊此:

value += 1 

然後讓計時器做到這一點:

print(value /30) 

,如果你得到在任何步驟失去了告訴我!

0

你可以去這個鏈接Beginning Game Programming for Teens with Python並尋找它是如何工作的整個代碼。

在該代碼中,你會發現一個類似的部分是這樣的:

# 6.4 - Draw clock 
font = pygame.font.Font("JUICE___.TTF", 44) 
survivedtext = font.render(str((90000-pygame.time.get_ticks())/60000)+":"+str((90000-pygame.time.get_ticks())/1000%60).zfill(2), True, WHITE) 
textRect = survivedtext.get_rect() 
textRect.topright=[635,5] 
screen.blit(survivedtext, textRect) 

什麼你要找的是在工作,所以你必須學習的代碼,並找出自己的方式:P

0

我不得不爲我的一個項目做同樣的事情。在你開始你的主循環定義要調用clock.tick方法,並用它來減去剩餘時間的字體,時鐘,並且用戶已經在你的主循環左

font = pygame.font.SysFont("Terminal", 20) 
clock = pygame.time.Clock() 
time_left = 60.0 

現在設定的時間時鐘

while True: 
    time_passed = clock.tick() 
    time_passed_seconds = time_passed/1000. #This is so we can set time_left to seconds and not have to use milliseconds 
    time_left-=time_passed_seconds 

然後,當你坐下來你在哪裏畫的一切,你可以把這個

time_left_rendered = font.render("Time left = {:02}:{:02}".format(int(time_left)/60, int(time_left)%60), False, (255,255,255)) 
screen.blit(time_left_rendered, (0,0)) #or wherever you want it