Как сделать так, чтобы два персонажа не проходили друг через друга при столкновении в PYGAME? - PullRequest
2 голосов
/ 20 ноября 2019

Я создаю свою первую игру, и у меня возникают проблемы с обработкой столкновений. У меня есть игра для двух игроков, играющая на одной клавиатуре, awsd и updownleftright. Когда два игрока сталкиваются, я хочу, чтобы они не могли двигаться друг через друга. У меня проблемы с выяснением этого.

player_one_pos = [300,310]
player_two_pos = [600,310]

def detect_collision(player_one_pos, player_two_pos):
    p1_x = player_one_pos[0]
    p1_y = player_one_pos[1]
    p2_x = player_two_pos[0]
    p2_y = player_two_pos[1]
    if (p1_x + player_width/2) == (p2_x - player_width/2):
        return True
    return False

if detect_collision(player_one_pos, player_two_pos):
    ## players collide, can't go through each other

1 Ответ

2 голосов
/ 20 ноября 2019

Мне удалось это сделать, добавив оператор and. Это исправление должно быть достаточно на данный момент.

if key_pressed[pygame.K_RIGHT] and x < (goal_right[0] - player_width) and (x != a - player_width):
    x += speed_of_travel
if key_pressed[pygame.K_a] and a > (goal_left[0] + goal_width) and (a != x + player_width):
    a -= speed_of_travel
...