Я строю игру в Pygame, которая включает перемещение красного прямоугольника (игрока) с помощью клавиш со стрелками.Я заставил игрока двигаться с помощью клавиш со стрелками (клавиши со стрелками управляют скоростью, клавиша ввода подтверждает ход), но я должен быть в состоянии ограничить количество, которое игрок может перемещать за ход.Мне нужно сделать так, чтобы новая скорость / позиция могла быть максимум 20 пикселей вверх / вниз и 20 пикселей влево / вправо (20 пикселей означает двойное нажатие клавиши со стрелкой).
В настоящее время игрок перемещаетсяв соответствии со скоростью, установленной клавишей со стрелкой, но скорость увеличивается / уменьшается бесконечно вместе со стрелками.Мне нужно, чтобы он прекратил изменяться после того, как клавиши со стрелками были нажаты максимум 2 раза в любом направлении (вверх / вниз, влево / вправо).
Вот код, управляющий скоростью:
if event.type == pygame.KEYDOWN:
if p1_turn:
if event.key == pygame.K_RIGHT:
p1_velocity_x += 10
if event.key == pygame.K_LEFT:
p1_velocity_x -= 10
А вот код, который подтверждает изменение (на самом деле перемещает игрока):
if event.key == pygame.K_RETURN:
if p1_turn:
p1.y += p1_velocity_y
p1.x += p1_velocity_x
p1_turn = False
p2_turn = True
Как упоминалось ранее, должен быть какой-то механизм, который не дает скорости проходить выше 20px увеличения / уменьшения отисходная скорость х и от исходной скорости у.