Programación Angry Birds En este apartado vamos a mencionar los

Anuncio
Programación Angry Birds En este apartado vamos a mencionar los aspectos relevantes del trabajo de programación para colisiones, trayectorias, etc. El primer elemento del juego sobre el que gira la mayor parte del proceso de programación es el ​
gameObject​
​
“​
Bird​
”, el cual posee un ​
rigid Body​
y un ​
collider​
​
que rodea al ​
sprite​
.​
Estos son los elementos principales para darle propiedades físicas a la trayectoria del pájaro, así como para el tratamiento de las colisiones. Los ​
rigidBody​
empiezan siendo de tipo ​
Kinematic rigid Body ​
antes del lanzamiento, permitiendo así que mientras se encuentra en el “tirachinas” no responda ante fuerzas físicas y pueda ser animado y movido mediante el uso de “​
transform​
”. Una vez lanzado, pasa a ser un ​
standard rigid Body​
lo que permite que se mueva empleando fuerzas físicas. Otro de los elementos indispensables en el escenario que no se ve son los “​
destructores​
”, que no son más que ​
simple quad​
invisibles con ​
box Collider 2d​
​
y cuya función es capturar eventos de colisión para destruir los objetos “​
Bird​
”​
.​
Existen varios en el escenario colocados de manera que en cualquier caso los objetos “​
Bird​
” se destruyan, es decir, en los laterales, en el suelo y en el cielo a una cierta distancia. Esto permite que cuando se comprueba que la velocidad del pájaro es muy pequeña y ha sido lanzado, se decida que ha completado su caída y se hace que el “​
Bird​
” desaparezca. Los bloques que se disponen en el escenario a modo de obstáculos poseen un boxCollider2D​
y son instancias de un ​
prefab​
​
que realiza el tratamiento del “​
damage​
” o nivel de vida del obstáculo, a parte del sonido al caer, entre otros elementos. El movimiento de la cámara para seguir la trayectoria del pájaro se consigue empleando un “​
transform​
” teniendo en cuenta la ​
posición ​
en el eje X del mismo. El tratamiento del ​
gameObject​
“​
Pig​
” comprueba si un objeto de tipo “​
Bird​
” ha colisionado, en ese caso se procede a la destrucción del cerdo. En otro caso, cuando la colisión se produce con un tronco u otro cerdo, se recalcula el daño. Este punto es interesante ya que permite cambiar el ​
sprite​
a uno que muestra un cerdo con moratones según el nivel de daño. Si finalmente con todas las colisiones su salud cae por debajo de cero se destruye el objeto. En este punto, es interesante el tratamiento de la animación que se produce en el cerdo cuando tiene que morir, ya que es necesario que al método de destrucción del cerdo se le incluya una co­rutina que realice transición entre las imágenes de tal forma que el ojo humano se capaz de retener la imagen es decir, las imágenes deben permanecer unas milésimas de segundo para que se aprecie el efecto “​
explosión​
”. La forma de conseguir que los fondos al mover la cámara se muevan a distintos niveles, dando la sensación de tener “​
profundidad​
” en el bosque, se consigue empleando un ​
script de parallax​
​
donde los elementos de cada nivel de profundidad se desplazan en X con “​
delta​
” diferente. Finalmente, para gestionar todo el juego es necesario una ​
máquina de estados ​
que procure controlar que la aplicación no caiga en estados no controlados. Para ello se recurre a variables de tipo enumerado que definan los diferentes estados, en particular, se definen los estados para el tirachinas, para el pájaro, y para el juego en sí. De esta forma, se controla, por ejemplo, que antes de lanzar el pájaro, debe “​
subir​
” al tirachinas, que sólo es posible aplicar los “​
poderes​
” del pájaro cuando está en vuelo, etc. 
Descargar