虽然循环不起作用

时间:2013-08-21 20:01:24

标签: python menu pygame

我的问题是菜单,它显示“按空间播放!” 但是当我按下它时,它不起作用! 我认为这是while循环的问题 我无法正确显示代码,所以这里是我的代码的链接 https://github.com/Donutoftime44/nheon-shooter 我尝试将if语句放在我的代码中,如

while not done:
  if menu:
    ...
  elif not menu:
    ...

但它仍然无法运作! 有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

你有

   while menu:
      for event in pg.event.get():
        if event.type == QUIT:
          pg.quit()
          sys.exit()
        if event.type == KEYUP:
          if event.key == K_SPACE:
            print "playing"
            done = True

因为您永远不会更改菜单,所以循环永不中断,我相信您可能希望在menu = False中添加if event.key == K_SPACE:

答案 1 :(得分:0)

假设您正在谈论代码的这一部分:

while menu:
  for event in pg.event.get():
    if event.type == QUIT:
      pg.quit()
      sys.exit()
    if event.type == KEYUP:
      if event.key == K_SPACE:
        print "playing"
        done = True
  windowdisplay.fill(colors["gray"])
  windowdisplay.blit(label, ((maxx / 2) - 100, maxy - 25))
  pg.display.update()

似乎你想在用户按下空格时结束循环。在这种情况下,您需要:

if event.key == K_SPACE:
    menu = False

设置done等于True不会执行任何操作,因为done不会出现在代码中的任何其他地方。