pygame pacman Я хочу знать значение кода - PullRequest
0 голосов
/ 30 мая 2020

Это функция, которая заставила Призрака следовать за игроком, но я не понимаю. Я хочу знать значение кода.

def followPlayer(g, dirs):  
    d = ghosts[g].dir 
    if d == 1 or d == 3:
        if player.x > ghosts[g].x and dirs[0] == 1: ghosts[g].dir = 0
        if player.x < ghosts[g].x and dirs[2] == 1: ghosts[g].dir = 2
    if d == 0 or d == 2:
        if player.y > ghosts[g].y and dirs[1] == 1 and not aboveCentre(ghosts[g]): ghosts[g].dir = 1
        if player.y < ghosts[g].y and dirs[3] == 1: ghosts[g].dir = 3

1 Ответ

1 голос
/ 30 мая 2020

Код определяет направление движения призрака. Движение кодируется в ghosts[g].dir. 0 означает вправо, 2 означает влево, 1 означает вниз и 3 означает вверх.

Если движение призрака вертикальное (if d == 1 or d == 3), то оценивается, нужно ли изменить направление движения на горизонтальное направление (0, 2).
Если движение призрака горизонтальное (if d == 0 or d == 2:), то оценивается, нужно ли изменить направление движения на вертикальное (1, 3).

Если движение в определенном направлении разрешено, сохраняется в списке dirs.

Например, значение следующих строк кода:

if d == 1 or d == 3:
    if player.x > ghosts[g].x and dirs[0] == 1: ghosts[g].dir = 0
  • если движение вертикальное (if d == 1 or d == 3:)
  • и игрок находится справа от призрака (player.x > ghosts[g].x)
  • и движение вправо разрешено dirs[0] == 1
  • затем изменить направление движения вправо ghosts[g].dir = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...