簡體   English   中英

如何停止 pygame.time.set_timer?

[英]How can i stop pygame.time.set_timer?

我想打印消息 3 次。 在此之后,我該如何停止 pygame.time.set_timer?

import pygame
 
pygame.init()
 
print_message = pygame.USEREVENT + 0

pygame.time.set_timer(print_message, 1000)

while True:
    for event in pygame.event.get():
        if event.type == print_message: 
            print("stop now ")`
  

這可能不是最好的解決方案,但是當您希望它停止時,您可以將變量“print_message”設置為其他東西

像這樣:

import pygame
 
pygame.init()
 
print_message = pygame.USEREVENT + 0

pygame.time.set_timer(print_message, 1000)

while True:
    for event in pygame.event.get():
        if event.type == print_message: 
            print("stop now ")
            print_message = 0

可以通過將 0 傳遞給pygame.time.set_timer時間參數來停止計時器事件:

import pygame
 
pygame.init()
 
print_message = pygame.USEREVENT + 0
pygame.time.set_timer(print_message, 1000)

while True:
    for event in pygame.event.get():
        if event.type == print_message: 
            pygame.time.set_timer(print_message, 0)

pygame.time.set_timer還有一個額外的_loops_argument:

loops 是一個 integer ,表示發布的事件數。 如果為 0(默認值),則事件將繼續發布,除非明確停止。

如果您只想獲得 1 個單一事件,請使用參數 1 調用pygame.time.set_timer

import pygame
 
pygame.init()
 
print_message = pygame.USEREVENT + 0

pygame.time.set_timer(print_message, 1000, 1)  # <---

while True:
    for event in pygame.event.get():
        if event.type == print_message: 
            # [...]

暫無
暫無

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

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