我正在尝试制作类似于谷歌浏览器中看到的游戏,因为互联网因我的A Level计算机科学课程而失败。我遇到了有关碰撞检测的问题,非常感谢任何帮助。
当我尝试声明多个平台停止玩家移动(碰撞检测)时,所有平台都停止停止玩家移动。但是,当我只有一个平台阻止玩家移动时,它会起作用。
我的所有代码都位于此处:https://github.com/VincenzoLaRoche/ComputerScienceCourseWork
答案 0 :(得分:1)
您的问题是您正在完全独立地处理平台。因此,如果你站在一个,你没有触及另一个,所以它会让你摔倒。要停止此操作,您必须修改t1o播放器方法collision_detect
和do
,如下所示:
def collision_detect(self, platform):
if self.x > platform.x and self.x < platform.x2:
if self.y + 40 == platform.y:
return True
else:
return False
def do(self):
self.keys()
self.move()
self.draw()
c1 = self.collision_detect(platform(0, 500, 800, 10))
c2 = self.collision_detect(platform(0, 480, 400, 10))
if c1 or c2:
self.yVel = 0
Constants.CANJUMP = True
else:
self.yVel = 5
Constants.CANJUMP = False