12. Ahora vamos a añadir nuestra lógica, para cada una de las sub condiciones , vamos a agregar la siguiente lógica:
Player Platform Vector y - 500
Esto básicamente dice al juego, que cuando todas nuestras condiciones son verdaderas, tomar el jugador y moverlo hacia arriba (eje Y) por 500. Ten en cuenta que decimos -500, esto se debe a que en el eje Y, los números negativos nos mueven hacia arriba. Observa también que en este punto estamos reaccionando del mismo modo no importa en qué lado la pared estamos. Abordaremos esto más adelante, por ahora sólo quiero que puedas conseguir la sensación básica para el salto de la pared. Haz esto para cada uno de los eventos de pruebas de pared y tu hoja de eventos ahora debe verse así:
13. Seguimos adelante, ejecuta el proyecto. Mueve al personaje (el bloque) con las teclas de flecha. Cuando saltas contra una pared, presiona la flecha hacia arriba nuevamente. Puedes notar que el personaje no siempre salta de nuevo. Esto es porque estamos probando para "is jumping" esto significa que sólo funciona si el personaje sigue moviéndose hacia arriba. Básicamente no han pasado el punto medio (ápice) o mid point (apex) de su salto. La razón de esto sucede es porque la manera que el juego trabaja, es que una vez que un carácter se pasa el mid point (apex) ápice / punto medio / punto más alto de su salto, van de salto a la caída. Así que para que nuestro salto de pared para trabajar de la manera en que está escrito, tiene que tocar la teclas de saltar de nuevo muy rápidamente para que funcione. Lo hice de esta manera inicialmente como esta fue la más obvia y también una de las formas más comunes que he visto otros tratan de conseguir este trabajo. Además, ten en cuenta que si lo tocas con la suficiente rapidez, puedes seguir tocándolo y básicamente obtener infinito (hasta que te quedes sin pared) saltando de la pared. Esto no es lo que queremos. Así que ahora vamos a ver cómo podemos ajustar esto.
14. Vuelve a tu hoja de eventos y deja que el cambio más simple, permite cambiar el control de es saltar, a is falling. Quédate conmigo en esto, sólo estoy pasando por las variaciones más comunes de esto para que puedas ver a cada una en acción, y capaz de decidir cuál funciona mejor para tu juego. Esta vez cuando probamos el aviso de que el salto en la pared sólo se inicia una vez que tu jugador está pasado el (apex)ápice de su salto, básicamente están en el extremo descendente de la misma. Esto cambia completamente la sensación del salto en la pared. Una vez que realices el cambio, tu hoja de eventos debería verse así:
15. Ahora que hemos basado nuestro salto de pared de ambas condiciones is jumping y is_falling, ahora vamos a hacerlo de la manera que tiendo a utilizar en mis juegos. Para mi caso, quiero que el jugador sea capaz de saltar a la pared en cualquier punto de su salto, siempre y cuando estén al lado de una pared. Permite actualizar nuestro evento para comprobar simplemente si el jugador NO está en el suelo. Básicamente si están en el aire, y contra una pared, que salte de nuevo. Ten en cuenta que no hemos fijado el "salto de la pared infinita" cuestión que aún, vamos a abordar. Con el fin de obtener el salto de pared de la manera que quiero, voy a cambiar el evento "is_falling" a un evento"is on floor". Haz doble clic en el evento "is_falling" en tu hoja de eventos, y cámbialo a "is_on_floor". Ten en cuenta que esto no es una opción para NO en el piso. Podemos hacer esto al invertir el evento "is_on_floor". Una vez que lo creas, haz clic derecho en el evento "is_on_floor" y elige invertir en el menú. Tu hoja de eventos debe verse así: