5. Implementación de la pantalla del menú principal.

Sin valoraciones

5. Implementación de la pantalla del menú principal.

En el capítulo 4 vimos cómo utilizar la herramienta Animator para crear un diagrama de estados para las animaciones y cómo navegar a través de los estados a nivel de código. En este apartado del anexo terminaremos de implementar la pantalla y su lógica.

5. Implementación de la pantalla del menú principal.

Figura 5.1. Diferentes GameObjects de la pantalla del menú principal.

En la Figura 5.1 se muestra los diferentes GameObject de la pantalla del menú principal. El planeta, representado como el GameObject “world” contiene su textura y además también contiene cuatro hijos sin ninguna textura asociada. El giro del planeta podríamos calcularlo matemáticamente pero lo realizaremos mediante colisiones para así utilizar las funciones de Unity3d para 2D como la función “OnMouseDown” vista en el capítulo 3 o la función “OnTriggerStay2D”.

videojuegos

Cuando pulsemos sobre uno de los mundos, el planeta girará hasta que dicho mundo colisione con el personaje. Como los mundos son hijos del planeta, éstos también girarán al heredar sus transformaciones. Para que los mundos puedan detectar las colisiones, deben tener marcado sus “Box Collider 2D” como “trigger”, es decir, disparadores. Además, también será necesario añadir un “RigidBody 2D” como se puede apreciar en la Figura 5.2.

5. Implementación de la pantalla del menú principal.

Figura 5.2. Inspector de un “mundo” con los diferentes componentes agregados.

En el planeta tendremos asociado el siguiente script de la Figura 5.3 con varias variables estáticas globales que controlarán su movimiento desde otros scripts.

5. Implementación de la pantalla del menú principal.

Guardaremos un estado para conocer en qué mundo estamos, lo cual es necesario para establecer la lógica del botón para acceder a los niveles de un determinado mundo.

videojuegos

5. Implementación de la pantalla del menú principal.

En el script de la Figura 5.4 se pueden ver dos funciones. La primera, “OnMouseDown”, comprueba cuando pulsamos sobre dicho objeto y activa el giro del planeta y el estado “walking” de nuestro personaje. La segunda función, “OnTriggerStay2D”, se dispara cuando un GameObject con un “collider” toca al objeto. Esta función se dispararía en el momento en el que un GameObject entrase dentro del objeto. En este caso, cuando el personaje toca el mundo, se dispara la función y desactiva el giro del planeta, guarda el estado en el que se encuentra, cambia el estado de nuestro personaje a “resting” y activa el botón con el texto del mundo. Para que la colisión con el personaje se produzca en el centro de éste, en su “Box Collider 2D” se modifica la propiedad “offset” con un valor negativo para que se quede ligeramente a su izquierda como se puede apreciar el recuadro verde de la Figura 5.5.

5. Implementación de la pantalla del menú principal.

Figura 5.5. Box Collider 2D del personaje con el Offset con un valor negativo.

En el botón para ir a un nivel controlaremos su pulsación y según en el mundo en el que estemos, cargaremos un nivel u otro.

Compártelo en tus redes

Share on facebook
Share on twitter
Share on linkedin
Share on pinterest

Valore este curso

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Utilizamos cookies para asegurar que damos la mejor experiencia al usuario en nuestra web. Si sigues utilizando este sitio asumimos que estás de acuerdo. VER