То, что вы хотите, это добавить «гравитацию».Вы можете посмотреть на stackoverflow и возникнут сотни подобных вопросов.
Основная идея заключается в том, что гравитация всегда присутствует, вы не просто добавляете ее при нажатии клавиш.
Вы не опубликовали свой полный код, поэтому при условии, что проверка выполняется в основном цикле и что вы используете стандартную настройку «+ направление мало», все, что вам нужно сделать, это всегда добавитьдвижение в сторону дна и обратное движение только при нажатии кнопки.
Это означает что-то вроде этого (опять же, без полного кода, я думаю, немного):
my_change = 2.5
running = True
while running:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
my_change = -2.5
if event.key == pygame.KEYUP:
if event.key == pygame.K_UP:
my_change = 2.5
my += my_change
ЭтоВозможно, вам поможет, если вы думаете о change
как о velocity
, так что если вы дадите положительную скорость, она будет двигаться вниз, если она отрицательна, она будет двигаться вверх, а если она равна 0, она вообще не будет двигаться.