Pygame:鼠标特定轴检测

时间:2012-11-18 18:04:43

标签: python pygame mouse

我怎样才能检测到X轴,例如?

maus_x = 0
maus_y = 0
pygame.mouse.get_pos(maus_x, maus_y)

while not done:

    for event in pygame.event.get():

    if event.type == pygame.MOUSEMOTION:         
        if maus_x < wx_coord:
            angle += 10

理论上,这个“pygame.mouse.get_pos”返回一个元组(x,y)。但是,我在那里定义了一个变量来表示这个元组中的x和y。问题是,当我移动鼠标(pygame.MOUSEMOTION)时,当我执行“maus_x&lt; wx_coord:”中所写的操作时,它也会执行Y轴的功能。这完全没有意义。

只有当我在x轴上移动鼠标时,才能执行

“angle + = 10”。任何人都知道发生了什么? :)

1 个答案:

答案 0 :(得分:3)

这不是函数调用的工作方式。在您的代码中,maus_x始终为0,因为没有任何内容可以修改它。你想要:

while not done:
    for event in pygame.event.get():
        if event.type == pygame.MOUSEMOTION:      
            mousex, mousey = pygame.mouse.get_pos()   
            if mousex < wx_coord:
                angle += 10

实际上,您可能只想直接检查event对象:

while not done:
    for event in pygame.event.get():
        if event.type == pygame.MOUSEMOTION:      
            mousex, mousey = event.pos   
            if mousex < wx_coord:
                angle += 10

或者更好:

while not done:
    for event in pygame.event.get():
        if event.type == pygame.MOUSEMOTION:      
            relx, rely = event.rel   
            if relx != 0:  # x movement
                angle += 10