В данном коде при прыжке игрок мгновенно перемещается в точку над землей, а потом с ускорением падает вниз. Говоря про ускорение при движении вверх, я имел в виду, что игрок не должен сразу перемещаться в точку над землей, он должен подпрыгнуть до нее. Т.е. игрок будет двигаться вверх с определенной скоростью, но так как ускорение направлено вниз, он постепенно остановится и начнет падать вниз.
Например: в файле ES_FPS_3.bb в функции update_user() заменить этот код:
If pick_ent
jump_bool=False
user_vy=0
TranslateEntity user,0,-1,0,True
Else
jump_bool=True
user_vy#=user_vy#-G#*delta_t;v1=v2-a*t
EndIf
;;;
If KeyHit(57) And jump_bool=False Then user_vy#=1
на этот:
If if_jumping=0
If pick_ent
jump_bool=False
user_vy=0
TranslateEntity user,0,-1,0,True
Else
jump_bool=True
user_vy#=user_vy#-G#*delta_t;v1=v2-a*t
EndIf
Else
jump_amount#=jump_amount#-G#*delta_t
If jump_amount#<0 Then if_jumping=0
End If
;;;
If KeyHit(57) And jump_bool=False Then jump_amount#=.06: user_vy#=user_vy#+jump_amount#: if_jumping=1
при этом в начале объявив две переменные
Global if_jumping
Global jump_amount#
А значение
G# я сделал равным
0.0005