2014-01-19 68 views
0

我有這樣的代碼片段:Python - Pygame。如何在Sprites碰撞時禁用/根鼠標移動?

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碰撞,我需要鼠標無法在該位置移動,只是根(當發生碰撞) 。但是我找不到任何會禁用或根鼠標的功能。我嘗試將位置重置爲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

除了mouse.get_pos,有一個mouse.set_pos。當玩家試圖將它移開時,您可以使用它來讓鼠標繼續返回到適當的位置。實際上,你扭轉目前update

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

或者,你可以只是停止處理鼠標事件。如果光標可見,它仍然會移動,但遊戲會忽略它。