Как заставить персонажа перепрыгнуть через препятствие в pygame - PullRequest
1 голос
/ 03 августа 2020

Я пытаюсь заставить персонажа перепрыгивать через препятствие. Пока персонаж находится в препятствии (между двумя точками препятствия и ниже вершины препятствия), я хочу, чтобы программа завершилась. Однако, даже если персонаж перепрыгнул через препятствие, выполняется pygame.quit (). Как я могу решить эту проблему?

Вот мой код, в котором есть проблема.

if ((playerdino.x+55 > crator1loc) and (playerdino.x>crator1loc+40)):
    if playerdino.y+70<floorSurface-55:
        print('over the block')
    else:
        pygame.quit()
else:
    pass

Здесь весь код: https://github.com/Hal1903/RunningDino.git

1 Ответ

0 голосов
/ 04 августа 2020

Ваша логика для проверки того, находится ли персонаж в препятствии, неверна:

if ((playerdino.x+55 > crator1loc) and (playerdino.x>crator1loc+40)):

равно

if ((playerdino.x > crator1loc-55) and (playerdino.x>crator1loc+40)):

Таким образом, playerdino.x всегда больше crator1loc-55.

Вы можете изменить его на

if ((playerdino.x > crator1loc-55) and (playerdino.x<crator1loc+40)):

Кроме того, в вашем коде вы вызываете dino.updatedino(speed, win) как dino.updatedino(playerdino, -6, win). Это должно быть playerdino.updatedino(-6, win).

...