我正在用PYGAME做游戏,对事件循环有一些疑问

clock = pygame.time.Clock()
run = True
while run:
    clock.tick(60)
    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

也就是说,它是无限运行还是只运行60分之一秒 您是否可以将非事件运算符放入循环中 例如:

clock = pygame.time.Clock()
run = True
while run:
    clock.tick(60)
    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.MOUSEBUTTONUP:
            check = True
        if check:
            print("Hello")
            check = False

它会在你每次点击时都打印"Hello",还是会以某种方式中断?

推荐答案

由于clock.tick(60)次,游戏循环将以每秒最多60次迭代的速度无限运行.在PyGame中,tick是时间的度量值:clock.tick(60)表示每秒钟最多应该经过60帧.

您的代码看起来基本没问题,但在使用它之前,您需要初始化check:

clock = pygame.time.Clock()
run = True
check = False  #Initialization

while run:
    clock.tick(60)
    # event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.MOUSEBUTTONUP:
            check = True
    if check:
        print("Hello")
        check = False

我还没有运行它,但我想它应该会在你每次点击的时候打印"Hello".

Python相关问答推荐

如何使用Selenium访问svg对象内部的元素

用gekko解决的ADE方程系统突然不再工作,错误消息异常:@错误:模型文件未找到.& &

Django mysql图标不适用于小 case

标题:如何在Python中使用嵌套饼图可视化分层数据?

pandas滚动和窗口中有效观察的最大数量

Polars:用氨纶的其他部分替换氨纶的部分

Python键入协议默认值

如何在给定的条件下使numpy数组的计算速度最快?

从spaCy的句子中提取日期

当递归函数的返回值未绑定到变量时,非局部变量不更新:

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

isinstance()在使用dill.dump和dill.load后,对列表中包含的对象失败

在pandas数据框中计算相对体积比指标,并添加指标值作为新列

Python Tkinter为特定样式调整所有ttkbootstrap或ttk Button填充的大小,适用于所有主题

Python—转换日期:价目表到新行

为什么常规操作不以其就地对应操作为基础?

pandas:在操作pandora之后将pandora列转换为int

如何获得3D点的平移和旋转,给定的点已经旋转?

Regex用于匹配Python中逗号分隔的AWS区域

如何在Python中从html页面中提取html链接?