Pygame/Python 游戏不接收输入

Posted

技术标签:

【中文标题】Pygame/Python 游戏不接收输入【英文标题】:Pygame/Python game not receiving inputs 【发布时间】:2014-08-22 20:31:53 【问题描述】:

我正在尝试在 python 上制作游戏,我的问题是我无法让游戏在运行时读取输入。 (甚至没有退出键)。 没找到问题,我还以为是tick方法的缺失,但是我刚加了,还是不行。 任何帮助表示赞赏。

谢谢。

代码如下: 现在编辑只是游戏循环

astronut=Player()
astronut.paintplayer()
while True:
    screen.fill(WHITE)
    for event in pygame.event.get():
        if event.type == QUIT:
            terminate()
        if event.type == KEYDOWN:
            if event.type == K_ESCAPE:
                terminate()
            if event.type == K_UP:
                astronut.acceleration +=1
                astronut.speed = astronut.speed + astronut.acceleration
                astronut.posY= astronut.posY + astronut.speed
            elif astronut.posY<(WINDOWHEIGHT-OVERTHELINE-playerHeight):
                astronut.acceleration -=1
                astronut.speed = astronut.speed + astronut.acceleration
                astronut.posY= astronut.posY + astronut.speed

    astronut.paintplayer()    
    pygame.display.update()
    mainClock.tick(FPS)

【问题讨论】:

欢迎来到 SO!提供代码是很好的第一步,但请考虑制作一个 MVCE (***.com/help/mcve) - 这将简化我们为您提供帮助的能力,您甚至可能会在制作过程中意识到自己的错误。 【参考方案1】:

我认为你需要检查 event.key 而不是 event.type:

    if event.type == KEYDOWN:
        if event.key == K_ESCAPE:
            terminate()
        ...

【讨论】:

好收获。我之前看过这个并错过了 就是这样,谢谢!我知道我忽略了一些东西,但我不能完全把手指放在它上面。我真的需要睡觉...谢谢。

以上是关于Pygame/Python 游戏不接收输入的主要内容,如果未能解决你的问题,请参考以下文章

PyGame:Python 游戏编程入门-1

PyGame:Python 游戏编程入门-1

在 Pygame、Python 3 中设置固定的 FPS

pygame / python中的文本输入框[重复]

Pygame - Python游戏编程入门

Mac OS X 游戏如何接收低级键盘输入事件?