我想为pygame事件类编写一个简化的类,但我不太清楚我将如何处理这个问题。
我想简单地检查是否按下了一个键或鼠标,例如没有长时间的forloop事件:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
elif event.type == KEYDOWN and event.key == K_ESCAPE:
//do something
相反,我想要
if keydown(K_ESCAPE):
//do something
但我真的不确定如何解决这个问题。
对此有何想法?
答案 0 :(得分:0)
编写您描述的功能:
def keydown(event, *keys):
return event.type == KEYDOWN and event.key in keys
然后你可以称之为:
if keydown(event, K_ESCAPE):
您可以将多个键作为连续的位置参数传递。
答案 1 :(得分:0)
您仍然需要for循环,但如果您想要简化事件处理,您可能会发现此代码很有用(特别是EventHandle
类和eventLoop()
):https://bazaar.launchpad.net/~freevial/freevial/trunk/view/head:/src/common/events.py
方法`juguem()'中的用法示例是here:
for event in eventLoop():
if event.keyUp('q', 'ESCAPE', 'KP_ENTER', 'F3', 'F5') or \
event.keyUp('RETURN') and estat != 0:
return
if event.keyUp('DOWN'):
pass # do something