2016-06-19 25 views
2

我正在製作一款python遊戲,我不確定如何讓敵人和玩家發生碰撞。有人能告訴我一個簡單的方法來有效地將衝突添加到多個事物。我想讓我的Python遊戲中的敵人與玩家發生衝突。這是我用來將敵人移動到玩家的代碼。這段代碼會移動敵人,但敵人不會與玩家發生衝突。如何在tkinter中產生碰撞?

if self.canvas.coords(self.man)[0] > self.canvas.coords(Man1.man)[0]: 
    self.canvas.move(self.man,-1,0) 
if self.canvas.coords(self.man)[0] < self.canvas.coords(Man1.man)[0]: 
    self.canvas.move(self.man,1,0) 
if self.canvas.coords(self.man)[1] < self.canvas.coords(Man1.man)[1]: 
    self.canvas.move(self.man,0,1) 
if self.canvas.coords(self.man)[1] > self.canvas.coords(Man1.man)[1]: 
    self.canvas.move(self.man,0,-1) 
+1

你問如何移動畫布上兩個項目,直到他們接觸? –

+0

檢查[this](https://inventwithpython.com/chapter18.html)out – girthquake

+0

我試圖在畫布上製作一個項目,當它與另一個項目碰撞時 – Crafterguy

回答

1

您可以使用canvas.overlapping(),它返回給定矩形中的所有項目。只需給它一個對象的x,y座標,並查看該元組是否返回多個對象。

,如果你向我們展示一些代碼或提供更多的細節,我們也許能夠更好地幫助您

+0

您能否提供一個可用且可驗證的使用示例? – nbro

+0

我試過canvas.overlapping,但它給了我這個錯誤:AttributeError:'Canvas'對象沒有'重疊'屬性' – Crafterguy