[英]How would I add a running timer that shows up on the screen in pygame
[英]How would I set a timer with Pygame and Livewires?
因此,在我正在創建的游戲中,當玩家拿起速度提升精靈時,我希望玩家周期性地提升速度約5秒鍾,有人可以幫助我了解如何做到這一點嗎? “抓手”方法將包含用於加速的代碼,玩家的實際速度也被設置為等於2的全局變量“速度”。
class Addspeed(games.Sprite):
image = games.load_image('addspeed.png')
speed = 2
def __init__(self,x,y = 10):
super(Addspeed, self).__init__(image = Addspeed.image,
x = x, y = y,
dy = Addspeed.speed)
def update(self):
if self.bottom>games.screen.height:
self.destroy()
def handle_caught(self):
global speed
如果您的游戲足夠大,我建議您使用計時器管理器。 有一個基於pygame.Clock的大型計時器。 創建方法,以注冊時間和時間流逝時要調用的方法。 所以像這樣:
timerMananger.register(self.myMethod,5000)
# registers an event to be called after 5 seconds
管理器應包含時鍾,並具有要完成的優先任務隊列。 這是一個簡短的草圖:
def register(myMethod,t):
pqueue.add(myMethod,time_now+t)
def tick():
clock.tick()
if(time_now > pqueue[0]):
pqueue.pop()[0]()
這樣,您僅檢查最近的事件。 如果有很多事件,可以將if更改為while循環,以便一次處理所有事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.