Necesitas dos booleanos, isColidingWithGround
yisJumping
Cuando el usuario presiona el botón de salto, si isColidingWithGround
es true
y isJumping
es falso, entonces llame a lo jump()
que se establece isJumping
entrue
Si la y
velocidad del jugador es positiva, entonces isJumping
es igualfalse
Si el jugador está colisionando con el suelo, entonces isColidingWithGround es igual true
, de lo contrario isColidingWithGround
es igual false
.
A veces, el jugador todavía está en contacto con el suelo después del impulso de salto inicial, y encuentro que al usar estas dos banderas, evita que se llame al salto () varias veces cuando se presiona el salto.