Hola a todos.
Bienvenidos al video.
En este video vamos a crear la funcionalidad de buffer jump. Primero, te mostraré cómo funciona.
Puede ser confuso, pero es muy útil.
Puedo saltar y, cuando caigo, presionar la tecla de salto antes de tocar el suelo.
Si presiono antes de aterrizar, normalmente el personaje no saltaría de inmediato.
Pero buffer jump guarda la pulsación y salta automáticamente al aterrizar si presionaste justo antes.
Así parece que tienes mucha habilidad, pero en realidad es el script ayudando.
Sin buffer jump, es más difícil saltar justo al aterrizar.
Con buffer jump, es más fluido.
Para implementarlo, necesitamos saber el tiempo en que se presionó el botón de salto.
Creamos una variable float para guardar el tiempo y la actualizamos cuando se presiona el botón.
Agregamos un header Buffer Jump y una variable pública bufferJumpPressed.
Creamos un método privado requestBufferJump que guarda el tiempo si el jugador está en el aire.
En el input de salto, llamamos a requestBufferJump.
Ahora, si el tiempo guardado más la ventana de buffer es mayor que el tiempo actual, permitimos el salto.
Creamos un método privado attemptBufferJump.
Agregamos una variable bufferJumpWindow, por ejemplo 0.25 segundos.
Si el tiempo actual es menor que bufferJumpPressed + bufferJumpWindow, llamamos a jump y reseteamos bufferJumpPressed.
En handleLanding, llamamos a attemptBufferJump.
Probamos: ahora el salto es más fluido.
Si es muy fácil, reduce el valor de bufferJumpWindow para hacerlo más difícil.
No es obligatorio, pero mejora la sensación del juego.
Si hay un glitch al saltar justo al inicio, inicializa bufferJumpActivated en -1.
¡Listo! Gracias por tu atención.