Pygame跳线碰撞检测不起作用

时间:2018-05-01 15:36:37

标签: python pygame

我正在尝试制作类似于谷歌浏览器中看到的游戏,因为互联网因我的A Level计算机科学课程而失败。我遇到了有关碰撞检测的问题,非常感谢任何帮助。

当我尝试声明多个平台停止玩家移动(碰撞检测)时,所有平台都停止停止玩家移动。但是,当我只有一个平台阻止玩家移动时,它会起作用。

我的所有代码都位于此处:https://github.com/VincenzoLaRoche/ComputerScienceCourseWork

1 个答案:

答案 0 :(得分:1)

您的问题是您正在完全独立地处理平台。因此,如果你站在一个,你没有触及另一个,所以它会让你摔倒。要停止此操作,您必须修改t1o播放器方法collision_detectdo,如下所示:

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