如何在打印3次消息后停止pygame.time.set_timer定时器?
解决方法
核心实现逻辑很简单:加一个计数器统计打印次数,次数达标后将定时器的间隔参数设为0即可停止事件推送。
- 先定义一个初始值为0的全局计数变量,用来记录消息打印的次数
- 每次触发
print_message事件时,执行打印操作后给计数器加1 - 当计数器数值达到3时,调用
pygame.time.set_timer(print_message, 0),pygame就会停止推送该自定义事件,对应定时器直接失效
修改后的完整代码如下:
import pygame pygame.init() print_message = pygame.USEREVENT + 0 # 初始化打印计数器 print_count = 0 # 启动定时器,每1000毫秒发送一次print_message事件 pygame.time.set_timer(print_message, 1000) while True: for event in pygame.event.get(): if event.type == print_message: print("stop now ") print_count += 1 # 打印满3次就停止定时器 if print_count >= 3: pygame.time.set_timer(print_message, 0) # 如果不需要继续运行主循环,也可以在这里加pygame.quit()和exit()直接退出程序
内容的提问来源于stack exchange,提问作者Joachim
相关产品推荐
相关产品推荐

