En la última entrada sobre el
comportamiento
del veneno expliqué el problema que tenía en el movimiento
vertical del veneno al adaptarse a los desniveles del terreno, aunque
creo que sin vídeo no se entiende tan bien. En este artículo hay
vídeo de cual es el problema y cómo funciona después de haberlo
solucionado.
He cambiado la forma de realizar el
movimiento interno del enemigo, antes se añadía un movimiento de
seno (en función del tiempo) a la altura, de esa forma se obtenía
ese movimiento de bamboleo, pero al cambiar la altura del terreno, el
personaje también la cambia de forma brusca (ya que se mide la
altura del terreno cada medio segundo para no tirar rayos
continuamente). Ahora el bamboleo se realiza con iTween, con una
función de suavizado por seno, y el cambio de altura se nota en el
objetivo del siguiente movimiento. Es decir, ahora le digo: sube a
altura 8 a velocidad 1, y cuando llega a 8 digo: baja a altura 6 a
velocidad 1. Si la altura del suelo hubiera cambiado se nota en esas
órdenes.
Hay otro pequeño añadido, esa velocidad no es siempre la misma, sino que depende de la diferencia de altura a recorrer para que si hay mucho desnivel no se lo tome con tanta calma. El bamboleo antes tenía la misma velocidad si el enemigo estaba normal o enfadado, ahora el movimiento interno es más rápido si el veneno está enfadado, encajando mejor con el resto de su comportamiento.
También he cambiado ya el momento de
comprobar la distancia de los enemigos al personaje para activarlos o
no, y la evaluación de las IA del veneno. Hasta ahora las distancias
se evaluaban en el primer frame cada segundo y las IA cada medio
segundo. Coincidía que había un frame donde se evaluaban todas las
distancias y todas las IA activas. Ahora se va evaluando 1 distancia
y 2 IA por frame, pero como el número de venenos varía (nos los
cargamos), pasaría que al avanzar el juego los enemigos evaluarían
su IA demasiado a menudo, por lo que he hecho un pequeño sistema
para que al acabar de evaluar todos, no vuelva a empezar hasta que ha
pasado el tiempo estipulado para cada acción (1 segundo o medio
segundo). No he notado un gran impacto en los FPS, pero supongo que
ayudará a que no haya momentos con bajones puntuales.
No hay comentarios :
Publicar un comentario