簡體   English   中英

如何在 pygame 中制作無敵定時器?

[英]How can I make a invincibility timer in pygame?

我的游戲中有一個星星加電,當它與玩家發生碰撞時,我想要一個啟動的“無敵計時器”。 這個計時器基本上會關閉所有碰撞 5 秒,在 5 秒結束后,它們會再次打開。 有沒有更好的方法來實現這一點,如果沒有,我怎么能在 pygame 中寫這個?

使用 boolean => invisibility = false 一旦玩家與星星加電發生碰撞,將其設置為 true。

然后在您的 if else 語句或循環中,state 如果 invisibility = true,則不會發生沖突。

在 pygame 中存在一個定時器事件。 使用pygame.time.set_timer()在事件隊列中重復創建USEREVENT 時間必須以毫秒為單位。
發生碰撞時使玩家不可見並啟動計時器事件。 當你得到計時器事件時讓玩家可見:

player_visible = True
timer_interval = 5000 # 5 seconds
timer_event_id = pygame.USEREVENT + 1

run = True
while run :
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

         elif event.type == timer_event_id:
             player_visible = True

    # collision detection
    # [...]
    if collide:
        player_visible = False
        pygame.time.set_timer(timer_event_id, timer_interval, 1)
        

暫無
暫無

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

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