Novedades del Blog

viernes, 23 de enero de 2009

Teniendo en cuenta a Newton...

Ayer por la noche conseguí acabar la implementación de la gravedad, de momento, solo acusaran la gravedad las entidades que se mueven o lo que es lo mismo, aquellas que tengan el Componente de Navegación.

Aunque espero optimizarlo, ahora mismo, se hacen dos comprobaciones de colisiones por ciclo, una para el eje Y y otro para el eje X o Z. Aunque creo que podría hacerlo con una sola comprobación, no voy a complicarme mas, ya que no se aprecia penalización en el framerate haciendo 1 o 2 comprobaciones. Por suerte, esa comprobación de colisiones, es un proceso que me ha quedado bastante bien y no consume apenas tiempo de reloj jeje:)
El esquema básico es este:

1º Coloco la entidad en la posición del eje Y indicada (si salta aumento en Y y si cae disminuyo en Y).
2º Compruebo si colisiona con alguna entidad.
3º Si hay colisión vuelvo a colocar la posición del eje Y en la posición antigua que no colisionaba, sino dejo la posición Y en la misma posición.
4º Coloco la entidad en la posición del eje X o Z indicada (dependiendo en que dirección se mueve la entidad)
5º Compruebo si colisiona con alguna entidad.
6ºSi hay colisión vuelvo a colocar la posición del eje X o Z en la posición antigua que no colisionaba, sino dejo la posición X o Z en la misma posición.

Este componente solo lo tiene Batman, porque es la única entidad que es manejada por el usuario, pero cuando implemente la Navegación con IA para los NPCs, tendrán que tener la opción de activarla o no.

Lo siguiente que tengo que hacer es que salte la distancia y el tiempo exacto al original, cosa que parece sencilla, pero después de estudiarlo un poco, tiene su miga.

No hay comentarios:

Publicar un comentario en la entrada