Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查我的角色与哪个对象碰撞?_Python_Collision Detection - Fatal编程技术网

Python 如何检查我的角色与哪个对象碰撞?

Python 如何检查我的角色与哪个对象碰撞?,python,collision-detection,Python,Collision Detection,我正在为一个游戏进行碰撞检测,这样当角色遇到物体时,他们就会停止移动。作为解决方案的一部分,我创建了两个函数,它们遍历屏幕上的对象列表以检查冲突 第一个功能(on_key_up)在按住方向键时检查碰撞,然后在为True时停止字符移动 第二部分是另一个函数(按_键_向上),它将角色稍微移出碰撞区域,以便他可以再次自由移动。这在释放方向键时触发 问题是,我需要访问角色碰撞的任何对象的高度和宽度属性,因此我想知道是否有办法做到这一点 我发布了一段我所做的事情,这样你就可以看到我努力的方向 我做错了什么

我正在为一个游戏进行碰撞检测,这样当角色遇到物体时,他们就会停止移动。作为解决方案的一部分,我创建了两个函数,它们遍历屏幕上的对象列表以检查冲突

第一个功能(on_key_up)在按住方向键时检查碰撞,然后在为True时停止字符移动

第二部分是另一个函数(按_键_向上),它将角色稍微移出碰撞区域,以便他可以再次自由移动。这在释放方向键时触发

问题是,我需要访问角色碰撞的任何对象的高度和宽度属性,因此我想知道是否有办法做到这一点

我发布了一段我所做的事情,这样你就可以看到我努力的方向

我做错了什么

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

listofwidgets(i)
是您正在碰撞的对象,因此请将该小部件或
i
存储在一个变量中,以备以后使用

我认为你只需要改变一下:

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]
(如果它不仅仅是一个输入错误)

小部件就是您正在碰撞的对象?i的属性是什么?