Pygame鼠标移动

4

我有一个事件,能够让我用鼠标移动一个正方形(a_block)。但是,如果鼠标按钮一直按下,我似乎无法改变它的移动方式。

if event.type == pygame.MOUSEMOTION:
    mouse_position = pygame.mouse.get_pos()
    a_block.set_position(mouse_position[0],mouse_position[1]

你还应该说明代码已经发生了什么。比如,即使没有按下按钮,块是否始终在鼠标位置绘制? - SimonT
现在这个块按照光标的位置移动,没有问题。我只希望当鼠标按钮一直按下时,将其改为仅移动到光标位置。我的第一次尝试只有在点击时才改变 loc。 - user3599484
1个回答

7

请确保遍历了所有pygame事件,因为我认为您只查看了第一个事件,而这个事件在鼠标未按下时是鼠标位置事件,但是当鼠标按下时,第一个事件是按钮按下事件。以下是我用于解决问题的代码片段:

for events in pygame.event.get(): #look at all events
    if events.type == pygame.MOUSEMOTION:
        mouse_position = pygame.mouse.get_pos()
        a_block.set_position(mouse_position[0],mouse_position[1])

我尝试了你的解决方案,但它并没有真正起作用,因为它有很多延迟,我无法解释为什么。 - user3599484
迭代Pygame事件队列的包含是必要的,但请添加一个部分,Elias:使用if mouse.get_pressed()[0]仅在按下左鼠标按钮时绘制块的位置。 - SimonT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接