如何检查我的角色碰撞的对象?

时间:2014-03-28 06:59:04

标签: python collision-detection

我正在为游戏进行碰撞检测,因此如果角色遇到对象,他们就会停止移动。作为我的解决方案的一部分,我已经制作了两个函数,它们遍历屏幕上的对象列表来检查碰撞。

第一个函数(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

2 个答案:

答案 0 :(得分: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](如果它不仅仅是一个错字)

答案 1 :(得分:0)

listofwidgets(i)是您要与之碰撞的对象,因此要么将该小部件存储,要么将i存储在变量中供以后使用。