В этой строке есть опечатка:
car2y = car2y + car2dx
Это должно быть:
car2y = car2y + car2dy
Обратите внимание, что последний символ исправлен на y
, а не x
.
Хотя было бы проще использовать оператор +=
и записать его как:
car2y += car2dy
У вас также есть другие ошибки в этом разделе:
if event.type == pygame.KEYUP:
if event.key in (pygame.K_w, pygame.K_s):
car1dx = 0
elif event.key in (pygame.K_a, pygame.K_d):
car1dy = 0
if event.key in (pygame.K_UP, pygame.K_DOWN):
car1dx = 0
elif event.key in (pygame.K_LEFT, pygame.K_RIGHT):
car1dy = 0
Вы сбрасываете неправильные переменные. Вы сбрасываете dy вместо dx и наоборот, а в разделе клавиш со стрелками вы забыли изменить его на car2. Примерно так:
if event.type == pygame.KEYUP:
if event.key in (pygame.K_w, pygame.K_s):
car1dy = 0
elif event.key in (pygame.K_a, pygame.K_d):
car1dx = 0
elif event.key in (pygame.K_UP, pygame.K_DOWN):
car2dy = 0
elif event.key in (pygame.K_LEFT, pygame.K_RIGHT):
car2dx = 0
Примечание: в приведенном выше примере я также изменил второй if
на elif
. Это не повлияет на правильность кода, это просто позволит избежать ненужной проверки if в случае, когда он уже соответствует указанному выше.