2014-03-28 22 views
1

我正在研究遊戲的碰撞檢測,這樣如果角色碰到一個物體就會停止移動。作爲我的解決方案的一部分,我已經做了兩個函數遍歷屏幕對象列表來檢查碰撞。如何檢查我的角色與哪個對象發生碰撞?

第一個函數(on_key_up)在方向鍵被按下時檢查衝突,然後在True時停止字符移動。

第二部分是另一個函數(on_key_up),它將角色稍微移出碰撞區域,以便他可以再次自由移動。這在釋放方向鍵時觸發。

問題是我需要訪問角色碰撞的任何對象的高度和寬度屬性,所以我想知道是否有辦法做到這一點。

我貼什麼,我這樣做的一個片段,你可以看到我試圖去的方向。

我幹了什麼錯在這裏做什麼?

def on_keyboard_up(self, keyboard, keycode): 
     if keycode[1] == 'left': 
      self.source = 'selectionscreen/faceleft.png' 
       for i in listofwidgets: 
        if self.collide_widget(i): 
         self.x = ((listofwidgets(i).x + listofwidgets(i).width + .1)-self.x) + self.x 
+0

小部件是你碰撞的對象? –

+0

'i'的屬性是什麼? –

回答

2

我想你需要簡單的改變:

self.x = ((listofwidgets(i).x + listofwidgets(i).width + .1)-self.x) + self.x

到:

self.x = (i.x + i.width + .1)-self.x) + self.x

而且listofwidgets(i)將是一個函數調用,它也許應該listofwidgets[i](如:這不是什麼t只是一個錯字)

0

listofwidgets(i)是你與碰撞物體,所以無論是商店,窗口小部件,或供以後使用可變i

相關問題