Ir al Indice
Curso RPG
Motor de movimiento y animación de nuestro PJ
Construir un motor se debe a una simple razon: No tenemos algo hecho que nos valga, por lo tanto tendremos que hacerlo.
El motor debe ser lo mas simple posible y a la vez ser lo mas eficaz posible.
-------
Bien, esto es lo que teniamos:
[Tienes que estar registrado y conectado para ver este vínculo]Lo primero que se nos ocurre es sustituir nuestro cuadrado, que tiene toda la pinta de ir bien, por un sprite (active con 8 direcciones).
Bien, vamos a hacerlo. A ver que pasa.
[Tienes que estar registrado y conectado para ver este vínculo]Vemos que hay distintos problemas. La identificación de los problemas y la forma de solucionarlos es lo que nos va a permitir construir nuestro motor de movimiento.
Pbma 1. Se queda atascado en las colisiones con el background.
Pbma 2. Nos haría falta algo que nos indicara la dirección de la colisión. Esto será necesario mas adelante.
Pbma 3. El tamaño de nuestro sprite hace que las colisiones laterales y superior no sean con la aproximación adecuada. No nos interesa que se pare cuando la cabeza llegue a una puerta, sino lo conveniente sería cuando lleguen los pies.
Pbma 4. El tamaño de nuestro sprite es el que va a determinar por donde va a poder pasar. Esto no nos conviene.
Por tanto, adoptamos unas astucias para corregir estos pbmas y algún otro.
1. Vamos a seguir trabajando con un active de 32x32 para nuestro movimiento de 8 direcciones y haremos que el resto se ajuste de forma automática a este movimiento.
2. Como detector de colisiones pondremos una simple barrita que esté siempre al frente de nuestro movimiento. Lo llamaremos
DTC.
3. Como no queremos que nuestro cuadrado supere 32x32, lo haremos un poco mas pequeño, a partir de ahora lo llamaremos
DIR. Al añadirle la barrita anterior nos siga dando los 32x32.
4. Ajustaremos nuestro sprite de Link para que se mueva al compas de nuestro DIR, con su direccion. Cuando este quieto, haremos que la animacion sea de Stop y cuando se mueva que se ponga en modo walking.
5. Queremos que nuestro Link tenga los pies en el centro del
DIR. Esto exige un ajuste. La solucion es hacer el calculo de diferencia de Hot Spot.
Pondremos esta diferencia de ajuste en X e Y en unas variables globales.
Podriamos hacer un ajuste directo, pero prefiero este sistema.
6. Añadimos unas pequeñas astucias mas para que el movimiento sea correcto. Son faciles de entender. Ver el MFA.
Todo ello nos da lo siguiente:
[Tienes que estar registrado y conectado para ver este vínculo]Descarga mfa: AQUI
Le he añadido la posibilidad de ver todo esto en tiempo real, para una mas facil comprensión:
space: Ver capa de colision (background) (
CCNL)
z: Ver Detector de Colisiones (
DTC)
x: Ver
DIRc: Ver Link nuestro
PJ.
Sencillo, verdad ?
Como siempre, se cuenta todo lo necesario, aunque de forma somera.
Según necesidades se irá aclarando o ampliando esta explicación.