我一直在努力学习python。但是不太了解事件语法发挥作用的部分。请解释它需要什么样的值等,以及如何将它与0等整数值进行比较。
def checkForKeyPress():
if len(pygame.event.get(QUIT)) > 0:
terminate()
keyUpEvents = pygame.event.get(KEYUP)
if len(keyUpEvents) == 0:
return None
if keyUpEvents[0].key == K_ESCAPE:
terminate()
return keyUpEvents[0].key
答案 0 :(得分:3)
我想我已经过度回答了你的问题。 pygame.event.get()
返回一个列表对象,其中包含零个或多个事件。 len()
返回该列表中的项目数 - 将其与0进行比较会告诉您有关列表的空白或其他内容的信息。
def checkForKeyPress():
#if I retrieve at least one quit event since I last checked
if len(pygame.event.get(QUIT)) > 0:
#quit the game
terminate()
#retrieve all the key release events since we last checked
keyUpEvents = pygame.event.get(KEYUP)
#if there are no key release events
if len(keyUpEvents) == 0:
#there was no key press, don't return anything
#and skip the rest of the method
return None
#if the user pressed the escape key
if keyUpEvents[0].key == K_ESCAPE:
#quit the game
terminate()
#if we haven't returned or quit already
#return the first key released since we last checked
return keyUpEvents[0].key
这段代码有一些令人深感不安的事情。
KEYDOWN
)而是发布(KEYUP
)。如果我花了一些时间分析它并查看它来自何处,我相信我还能提出一些问题。在您自己的游戏中处理事件时,请将此作为反例。有much better and simpler examples如何进行此类事件检查。