Python - Pygame。如何在sprite碰撞时禁用/ root鼠标移动?

时间:2014-01-19 20:32:04

标签: python pygame sprite

我有这段代码:

end_hist_list = pygame.sprite.spritecollide(self, end_walls, False)

for end in end_hist_list:
    end_sound.play()
    #now need to root position of mouse/or disable mouse movement

因此,当该精灵(玩家)与end_wall发生碰撞时,我需要鼠标无法移动,只能在该位置移动(当碰撞发生时)。但我找不到任何会禁用或root鼠标的功能。我尝试将位置重置为end_walls坐标,但随后它会在该精灵附近重置,但不会重置在它之上。我认为应该有一些简单的方法来做到这一点,我可能看不到它。有什么建议吗?

P.S。鼠标控制玩家精灵(最后spritecollide它是self),如下所示:

def update(self):
    """ Update player position """
    pos = pygame.mouse.get_pos()
    self.rect.x = pos[0]
    self.rect.y = pos[1]

1 个答案:

答案 0 :(得分:1)

mouse.get_pos外,还有一个mouse.set_pos。当玩家试图将鼠标移开时,您可以使用它将鼠标停留在适当的位置。实际上,您可以撤消当前的update

pygame.mouse.set_pos(self.rect.x, self.rect.y)

或者,您可以停止处理鼠标事件。如果光标可见,它仍会移动,但游戏将忽略它。