pygame模块'pygame.event.get()'在方法上不起作用吗?

时间:2019-03-26 05:43:27

标签: python events methods keyboard pygame

我制作了一个游戏,并使用pygame模块作为键​​盘输入。 但是,它似乎没有响应。 没有错误,但是运行代码时我的按键不起作用。

我尝试使用pygame.key,但是它不起作用。

我不知道这段代码有什么问题。

import pygame
pygame.init()
class keypress():
    def check(self):
        for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                        if event.key == pygame.KEYDOWN:
                            print("Hey, you pressed the key, '0'!")
                        if event.key == pygame.K_1:
                            print("Doing whatever")
                        else:
                            pass
a = keypress()
if __name__ == "__main__":
        while True:
            a.check()

当我按下按键时,它基本上什么也没做。

1 个答案:

答案 0 :(得分:2)

Pygame will not work without a screen/window defined

打开一个窗口,并修复了输入处理中的一些小错误〜

  • event.key需要再次检查pygame.K_0,而不是KEYDOWN
  • 缩进在main循环中很奇怪。
  • (仍然)无法退出

在大多数情况下,代码似乎都可以这样描述:

import pygame
pygame.init()
WINDOW_WIDTH = 400
WINDOW_HEIGHT= 400
screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))

class keypress():
    def check(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                # TODO - handle exiting
                pass
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_0:
                    print("Hey, you pressed the key, '0'!")
                elif event.key == pygame.K_1:
                    print("Doing whatever")


a = keypress()
if __name__ == "__main__":
    while True:
        a.check()