如何使get_pressed在pygame中工作?

时间:2014-01-06 18:20:48

标签: python pygame

尽管狩猎我似乎无法找到这个看似简单问题的答案:

我是pygame的新手(但不是python),并且我试图通过连续按钮按下来获得一些代码 - 但是get_pressed似乎对我不起作用。我这样做只是为了检查我是不是疯了(我已经省略了导入以使它对你们整洁):

def buttonpress():
  while True:
    keys = pygame.key.get_pressed()
    print keys[K_SPACE]
    time.sleep(0.5)
buttonpress()

据我所知,当你按下空格键时,这应该返回一个“1”,但不管你用什么键改变它 - 它只是返回一个无穷无尽的零串。

我错过了什么?

由于

1 个答案:

答案 0 :(得分:1)

没有代码处理输入以按下所有键。为了使其工作,您需要调用event.poll()。

所以你的代码看起来像这样。

import pygame
from pygame.locals import *
import time

pygame.init()

screen = pygame.display.set_mode((640,380))
def buttonpress():
  while True:
    keys = pygame.key.get_pressed()
    print (keys[K_SPACE])
    time.sleep(0.5)
    pygame.event.poll()
buttonpress()

还有一件事,不要使用time.sleep()。这会暂停线程,并可能导致操作系统认为您的应用程序没有响应(因为它不会从事件队列中删除事件)。