pygame KEYDOWN事件和按键事件
pygame KEYDOWN event and key events
您好,在使用 pygame 开发游戏时,有一个问题并不重要,但一直困扰着我一段时间。
while not gameExit:
for event in pygame.event.get():e
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
pass
以上是有效代码,我相信
while not gameExit:
for event in pygame.event.get():e
if event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
pass
同样有效。
然而,当我尝试 "event.key == pygame.K_RIGHT:" 之类的东西时,python 给我一个错误,说没有属性 'key'。
虽然我知道选择以上 2 个代码比 "event.key == pygame.K_RIGHT:" 更合理,但我不知道为什么 pygame 会说事件没有属性 'key' 而当我只是检查 event.type == pygame.KEYDOWN pygame 执行 "event.key == pygame.K_RIGHT" 是否没有问题。
检查 event.type == pygame.KEYDOWN 是否真的为事件生成了 'key' 属性?
并非每个事件都具有所有可能的属性。这就是为什么您必须首先检查事件类型的原因。
Here's 每个事件类型的所有属性列表:
QUIT none
ACTIVEEVENT gain, state
KEYDOWN unicode, key, mod
KEYUP key, mod
MOUSEMOTION pos, rel, buttons
MOUSEBUTTONUP pos, button
MOUSEBUTTONDOWN pos, button
JOYAXISMOTION joy, axis, value
JOYBALLMOTION joy, ball, rel
JOYHATMOTION joy, hat, value
JOYBUTTONUP joy, button
JOYBUTTONDOWN joy, button
VIDEORESIZE size, w, h
VIDEOEXPOSE none
USEREVENT code
如您所见,只有 KEYDOWN
和 KEYUP
事件具有 key
属性。
您好,在使用 pygame 开发游戏时,有一个问题并不重要,但一直困扰着我一段时间。
while not gameExit:
for event in pygame.event.get():e
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
pass
以上是有效代码,我相信
while not gameExit:
for event in pygame.event.get():e
if event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT:
pass
同样有效。
然而,当我尝试 "event.key == pygame.K_RIGHT:" 之类的东西时,python 给我一个错误,说没有属性 'key'。 虽然我知道选择以上 2 个代码比 "event.key == pygame.K_RIGHT:" 更合理,但我不知道为什么 pygame 会说事件没有属性 'key' 而当我只是检查 event.type == pygame.KEYDOWN pygame 执行 "event.key == pygame.K_RIGHT" 是否没有问题。
检查 event.type == pygame.KEYDOWN 是否真的为事件生成了 'key' 属性?
并非每个事件都具有所有可能的属性。这就是为什么您必须首先检查事件类型的原因。
Here's 每个事件类型的所有属性列表:
QUIT none
ACTIVEEVENT gain, state
KEYDOWN unicode, key, mod
KEYUP key, mod
MOUSEMOTION pos, rel, buttons
MOUSEBUTTONUP pos, button
MOUSEBUTTONDOWN pos, button
JOYAXISMOTION joy, axis, value
JOYBALLMOTION joy, ball, rel
JOYHATMOTION joy, hat, value
JOYBUTTONUP joy, button
JOYBUTTONDOWN joy, button
VIDEORESIZE size, w, h
VIDEOEXPOSE none
USEREVENT code
如您所见,只有 KEYDOWN
和 KEYUP
事件具有 key
属性。