我正在为游戏开发碰撞检测,这样如果角色遇到一个物体,他们就会停止移动。作为解决方案的一部分,我创建了两个函数来迭代屏幕上对象的列表以检查碰撞。
第一个函数 (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
最佳答案
我认为你需要简单地改变:
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]
(如果这不仅仅是一个拼写错误)
关于python - 如何检查我的角色正在与哪个物体发生碰撞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22706207/