(не)адекватный прыжок сделать можно так. Вводим переменную скорости прыжка. Константу содержащую максимальную скорость прыжка и константу G. Во время нажатия клавиши прыжка устанавливаем скорость прыжка в максимум. В цикле двигаем сущность этой скоростью вверх.
Таким образом получится плавный прыжок и не нужно городить 2 переменные вроде jumpSpeed и gravity, а использовать отрицательные значения JumpSpeed в качестве гравитации
В коде:
jumpMaxSpeed# = 1.2
jumpSpeed# = 0
const PHYS_G# = 0.98
Function Jump()
if KeyHit( кнопка_прыжка ) jumpSpeed = maxJumpSpeed
end function
... где-то в главном цикле( или в функции обновления игрока )
TranslateEntity entity, 0, jumpSpeed, 0
if jumpSpeed > -PHYS_G jumpSpeed = jumpSpeed - PHYS_G * 0.1
Можно еще эффектов всяких навесить. Вроде небольшого приседания перед прыжком и т.п.
зы. за блицевский код не бить если в нем недочеты - последний раз писал на нем 5 месяцев назад