Я никогда не использовал pygame в своей жизни и не написал ни одного слова на python, но вот мое предположение:
def speed(self, key):
# Figure out if it was an arrow key. If so
# adjust speed
if key == pygame.K_LEFT:
x_speed=-5
y_speed=0
return x_speed, y_speed
if key == pygame.K_RIGHT:
x_speed = 5
y_speed = 0
return x_speed, y_speed
if key == pygame.K_UP:
y_speed = -5
x_speed = 0
return x_speed, y_speed
if key == pygame.K_DOWN:
y_speed = 5
x_speed = 0
return x_speed, y_speed
Причина, по которой ваш код не работает, заключается в том, что когда клавиша со стрелкой не нажата, вы эффективно делаете это:
n = "go"
while n == "go":
continue
Извинения за синтаксические ошибки, а также, если я ошибаюсь, ell.