简化的键鼠标:输入

时间:2014-01-11 23:07:20

标签: python pygame

我想为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

但我真的不确定如何解决这个问题。

对此有何想法?

2 个答案:

答案 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