Activa Salto de pared
27. Ahora que tenemos una mecánica de salto de pared, vamos a dar un paso más allá. Para algunos juegos quizás no quieras que el jugador salte a la pared a menos que usen un power up de algún tipo. Tal vez un accesorio de botas magnéticas, o un palo para encender la pared. Primero, como hicimos para nuestras paredes, vamos a crear un nuevo Sprite para representar nuestro poder o power up. Simplemente será un cuadrado rojo. Una vez que el jugador lo consigue, vamos a activar la capacidad de salto en la pared. Crea un nuevo Sprite, como un cuadrado, llámalo powerUp y hazlo en rojo:
28. Ahora vamos a añadir una variable llamada hasPowerUp que rastreará si el "poder" está encendido o no. Esto es bastante fácil. Crea variable global hasPowerUp en tu hoja de eventos. Establece su valor inicial en 0 (0 representa false).
29. Tenemos que añadir un evento que permite al jugador obtener el poder cuando lo toca. Agregaremos un evento que detecte si están tocando. Si lo toca, establecemos la variable hasPowerUp en 1 y, a continuación, destruimos el Sprite para que desaparezca. Utilizaremos el siguiente evento:
Player On Collision with powerUP, System Set hasPowerUp to 1, Destroy powerUp
Tu hoja de eventos tendrá el siguiente aspecto:
30. Ahora vamos a actualizar nuestros eventos de salto en la pared para comprobar si el jugador tiene el poder. Dado que todas las condiciones tienen que ser verdad para que el evento se dispare o encienda, si el jugador no tiene el poder, no será capaz de saltar a la pared. Agrega la condición siguiente:
System hasPowerUp = 1
Tu hoja de eventos ahora debe ser similar a la siguiente:
31. Ahora crearemos un evento que compruebe el valor de hasPowerUp, y si es 1, esperará 5 segundos y luego lo restablecerá a 0. Básicamente, esto permite que la función de salto de pared dure hasta 5 segundos. Y luego lo apaga para nosotros. Puede haber formas más eficientes de hacer esto, pero esto es simplemente una de las maneras más rápidas de implementar el comportamiento. Crea la condición siguiente:
System hasPowerUp = 1 System Wait 5 Seconds, System set hasPowerUp to 0
Tu hoja de eventos ahora debe ser similar a la siguiente: