【问题标题】:Pygame clock and event loopsPygame 时钟和事件循环
【发布时间】:2020-02-28 01:42:03
【问题描述】:

我是 pygame 的新手,我想知道事件循环是什么以及在这种情况下时钟会做什么,比如 clock.tick(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

【问题讨论】:

    标签: python loops pygame


    【解决方案1】:

    pygame.time.Clock 对象的方法tick() 以这种方式延迟游戏,即循环的每次迭代消耗相同的时间。
    这意味着循环:

    clock = pygame.time.Clock()
    run = True
    while run:
       clock.tick(60)
    

    每秒运行 60 次。

    for event in pygame.event.get() 处理内部事件并检索外部事件列表(事件从内部事件队列中删除)。
    如果您按下窗口的关闭按钮,则会引发QUIT 事件,您将通过for event in pygame.event.get() 获得该事件。有关不同的事件类型,请参阅 pygame.event。例如KEYDOWN 在按键被按下时出现一次。

    例如以下循环在按下 a 键后打印其名称:

    run = True
    while run:
    
        # event loop
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
            if event.type == pygame.KEYDOWN:
                print(pygame.key.name(event.key))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      相关资源
      最近更新 更多