我有这段代码:
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]
答案 0 :(得分:1)
除mouse.get_pos
外,还有一个mouse.set_pos
。当玩家试图将鼠标移开时,您可以使用它将鼠标停留在适当的位置。实际上,您可以撤消当前的update
:
pygame.mouse.set_pos(self.rect.x, self.rect.y)
或者,您可以停止处理鼠标事件。如果光标可见,它仍会移动,但游戏将忽略它。