Хорошо, поэтому мне пришлось отладить его для вас
1) player = Player()
должно быть вне цикла while.В этом случае он постоянно инициализируется
2) player
должен быть передан в handle_keys
Я предполагаю, что вы новичок, поэтому яЯ собираюсь составить план моего мыслительного процесса и того, как я его отлаживал, так как я думаю, что это будет более полезным для вас в будущем:
1) поместите оператор печати в каждое условие, например
if key[pygame.K_DOWN]: # down key
print('Down')
player.y += dist # move down
elif key[pygame.K_UP]: # up key
print('Up')
player.y -= dist # move up
if key[pygame.K_RIGHT]: # right key
print('Right')
player.x += dist # move right
elif key[pygame.K_LEFT]: # left key
print('left')
player.x -= dist # move left
, что все напечатано правильно - это означает, что ваш handle_keys
работает
2) распечатывает (x,y)
координаты игрока немедленно ПОСЛЕ handle_keys
, когда я заметил, что (x,y)
значения, казалось, всегда сбрасывались.Это показало мне, что либо
Я оставлю вас, чтобы выяснить, какие изменения кода необходимо внести для решения вашей проблемы