首页  >  问答  >  正文

pygame - python中响应同一事件第二次的时候执行不同操作

在循环中响应了键盘一个键按下,然后执行两个操作,然后再次响应键盘的同一个键的按下,但是只执行第二个操作,应该怎么处理?

for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_ESCAPE:
            sys.exit()
        elif event.key == pygame.K_RIGHT:
            tank.update1()
            tank.moving_right = True

比如elif语句中,从第二次开始,只执行tank.moving_right = True 而不再执行tank.update1()
应该怎么处理

阿神阿神2733 天前596

全部回复(2)我来回复

  • 漂亮男人

    漂亮男人2017-05-18 11:00:36

    tank里面加开关标志

    elif event.key == pygame.K_RIGHT:
                tank.update1()
                tank.moving_right = True
            tank.update1()
            tank.moving_right = True
            这里封装一下,然后在tank里加成员变量

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-05-18 11:00:36

    添加个标志变量

    flag = True
    for event in ....:
        ...
        if flag:
            tank.update1()
            flag = False
        tank.moving_right = True

    回复
    0
  • 取消回复