如何在pygame中以未定义的方向检查mousemotion?

时间:2015-08-18 08:36:27

标签: python pygame

我想检查鼠标是否按照未定义的方向移动,如下所示:

for event in pygame.event.get():
    if event.type == pygame.MOUSEMOTION:
        "do something"

然后我想打印方向。这可能吗?

2 个答案:

答案 0 :(得分:1)

你已经到了一半:

类型为pygame.MOUSEMOTION事件的事件具有pos成员。 您可以存储前一个pos,并计算差异 - 方向。

答案 1 :(得分:1)

另一种可能性是pygame.mouse.get_rel(),它提供自上次调用此函数以来鼠标的移动量。这样就可以避免存储以前的位置。

简单示例:

import sys, pygame,time

FPS=30
fpsClock=pygame.time.Clock()

screen = pygame.display.set_mode((650,650))
screen.fill(255,255,255)
done = False 

while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        if event.type == pygame.MOUSEMOTION:
            print pygame.mouse.get_rel()

    pygame.display.update()
    fpsClock.tick(FPS)

您将获得如下所示的输出,如您所见,您可以将其解释为描述移动方向的(x,y)形式的向量:

(0, 0)
(-1, 0) 
(0, -8)
(0, 0)