第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在pygame中為敵人的攻擊添加冷卻時間?

如何在pygame中為敵人的攻擊添加冷卻時間?

胡子哥哥 2022-09-27 16:19:01
我嘗試過使用 threading.timer 來解決這個問題,但似乎無法讓它為我想做的事情工作。無錯誤消息。要么它甚至不會從玩家的生命值中減去,要么它只是立即耗盡生命值,從而擊敗整個點,而time.sleep只是凍結了整個程序。這是我無法正常工作的代碼from threading import Timerimport pygameplayerhealth = ['<3', '<3', '<3', '<3', '<3'] # just a list of player health symbolized by heartsrunning = Truewhile running:    def removehealth():            playerhealth.__delitem__(-1) # deletes the last item in the list of hearts    t = Timer(1, removehealth)    t.start()    # id display the hearts on screen down here
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻1827條經(jīng)驗 獲得超9個贊

使用pygame做到這一點的方法是使用pygame.time.set_timer()來重復創(chuàng)建一個用戶事件。例如:

milliseconds_delay = 1000 # 1 seconds

timer_event = pygame.USEREVENT + 1

pygame.time.set_timer(timer_event, milliseconds_delay)

在pygame中,可以定義客戶事件。每個事件都需要一個唯一的 ID。用戶事件的 ID 必須介于 (24) 和 (32) 之間。在本例中是計時器事件的事件 ID,這會耗盡生命值。pygame.USEREVENTpygame.NUMEVENTSpygame.USEREVENT+1


當事件在事件循環(huán)中發(fā)生時,刪除一個心形:


running = True

while running:


    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            running = False


        elif event.type == timer_event:

            del playerhealth[-1]

可以通過將 0 傳遞給 time 參數(shù) () 來停止計時器事件。pygame.time.set_timer(timer_event, 0)


查看完整回答
反對 回復 2022-09-27
?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

您可以使用該模塊并等待一定數(shù)量的秒。time


import time


start = time.time() # gets current time


while running:

    if time.time() - start > 1: # if its been 1 second

        removehealth()

        start = time.time()

此外,要刪除列表中的最后一項,您可以執(zhí)行del playerhealth[-1]


查看完整回答
反對 回復 2022-09-27
  • 2 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號