Обнаружение столкновений Pygame Jumper не работает - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь сделать игру, похожую на ту, что можно увидеть в Google Chrome, когда в Интернете не работает мой курс по компьютерным наукам уровня. Я столкнулся с проблемой, касающейся обнаружения столкновений, и любая помощь будет принята с благодарностью.

Когда я пытаюсь объявить более одной платформы, чтобы остановить движение игрока (обнаружение столкновения), все платформы перестают останавливать движение игрока. Но когда у меня только одна платформа, которая останавливает движение игрока, это сработает.

Весь мой код находится здесь: https://github.com/VincenzoLaRoche/ComputerScienceCourseWork

1 Ответ

0 голосов
/ 01 мая 2018

Ваша проблема в том, что вы работаете с платформами совершенно отдельно. Поэтому, если вы стоите на одном, вы не касаетесь другого, так что это заставляет вас упасть. Чтобы это остановить, вы должны изменить методы t1o player 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...