miércoles, 15 de abril de 2015

Power up

Ya puedo matar al enemigo, quiero que cuando acabas con un grupo de venenos caiga un power up para recuperar algo de vida. Así recompensamos al jugador que se para a matar enemigos y no pasa de ellos, y como la vida del personaje va cayendo sola, tienes que pensar si quieres jugar a avanzar rápido sin que te dañen, o a ir matando todo para recoger los power ups.



Tenía que hacer el power up. Tenía en mente esas pildoritas de vida que dejaban caer algunos enemigos en Megaman, al ser en 3D lo más lógico era pensar en algún tipo de esfera más o menos decorada, pero una esfera son muchos polígonos y aún así vista pequeña se nota que no es perfecta. Así que preferí ir a otro tipo de figura más sencilla y al final me quedé con una pirámide cuadrangular. Son 8 polígonos, 4 triángulos que salen de la cúspide y otros 4 que hacen la base. Muy sencilla.


Quería que tuviera algo de aspecto especial, así que busqué formas de hacer que tuviera una textura en movimiento. Tras curiosear las substancias, al final las dejé porque parecía que generaban texturas proceduralmente pero no eran dinámicas, o no supe hacerlo. Pero vi un efecto de lava en movimiento en la assetstore, y me lo descargué y el efecto era bastante sencillo, solo mueves las coordenadas UV del modelo. Así que personalizando un poco las texturas y usando un material de tipo MKGlow conseguí el efecto de objeto brillante y en movimiento, aunque de cerca se aprecia muy bien, de lejos se ve algo, pero hay que fijarse, tampoco destaca mucho, y eso que lo he dejado más bien grandecito para ser un power-up.


Power up

He tenido que poner un box collider y rigidbody al power-up, hacer que se cree al acabar con un grupo de enemigos (en las pruebas y en el vídeo ese grupo es de un solo enemigo) y que al cogerlo desaparezca y recupere algo de vida el protagonista.

Pero no se si se entiende bien que eso recupera vida. Tengo que dar una vuelta a la barra de vida, para ver como indico esa subida, y que no sea solo que suba en ese momento, que sino estás mirando no te enteras. Por ahora lo que he hecho es poner un efecto de partículas sobre el personaje al coger el objeto, para hacer ver que se cura.

Ese efecto es un efecto de partículas que existía en un pack de la assetstore, y además de un efecto de partículas tiene un pequeño script que da un flashazo con una luz. Ese script está hecho en un javascript un poco extraño, tendría que actualizarlo a c#, para mejorar algunas cosas, lo haré si tengo tiempo para mejorar rendimiento. Ese script lo malo es que si das al play al efecto 2 veces, la segunda el flashazo no funciona. Así que no he podido dejar el efecto ya creado en el personaje y activarlo cuando haga falta. Sino que lo instancio sobre la marcha cada vez que hay que usarlo. Esto es menos eficiente, pero tampoco nos encontramos un power up cada dos por tres, son ocasiones contadas.

También he tenido que hacer una pequeña corrección, yo instanciaba el efecto en la posición del personaje, pero si el personaje se movía durante el efecto, ya no le seguía quedaba donde se hubiera quedado, así que he tenido que poner el efecto colgando del personaje dinámicamente, aunque solo dure 1 segundo.

Colliders

En otro orden de cosas, pero relacionado, he hecho más pequeño el collider del personaje, era un poco más ancho de lo normal para cubrir un poco los brazos, pero esto hacía que al jugar fuera difícil golpear al enemigo sin recibir daño, así que lo he hecho más pequeó y he expuesto el brazo derecho para poder poner un collider en el antebrazo derecho. Así entre el collider del personaje más reducido, el de la espada y el del otro brazo es más fácil que no atravesemos paredes ni nada así, el del personaje recibe daño, el de la espada lo causa y el otro está solo para que no atravesemos cosas. Ahora es más fácil luchar sin recibir daño.

No hay comentarios :

Publicar un comentario