El objetivo de este post es tratar de entender cómo funcionan las animaciones afines de pokeemerald.
Antes que nada, definir el concepto de afinidad. Todos aquellos que hayan tenido dibujo técnico de asignatura (que es donde yo aprendí este concepto) sabrán a qué me refiero cuando hablo de una afinidad, pero como sé que muchos de vosotros no habéis pasado aún por ahí, o directamente no lo habéis dado, os dejo por aquí una breve explicación, que asumiré que entendéis, ya que yo he intentando escribirlo con mis propias palabras, y es que realmente esa explicación es sencilla, concisa, orgásmica y correcta.
Para mi esta explicación es orgásmica, pero tengo que cumplir con lo prometido
Tras leerme de nuevo la definición (para comprobar si realmente era correcta) leí lo de la simetría axial, y tras haber estado toqueteando un poco previamente, me he dado cuenta que realmente estamos tratando con simetrías axiales (respecto al eje X y al eje Y), pues hasta el momento no he encontrado ningún parámetro para poder definir la dirección de afinidad.
Por lo que he podido comprobar experimentalmente, el eje de simetría cae en el centro del sprite, por lo que esta "afinidadde plástico" no afectará a la posición del sprite en la pantalla.
Yo tengo poca información que aportar, aparte de la teórica porque aún no he indagado, y sólo he estado haciendo el tonto con el comando
Que podemos encontrar en la l. 450 aproximadamente del archivo "src/main_menu.c", en la que podemos modificar la afinidad aplicada al sprite del prota en el final de la intro del Prof.Birch.
Conforme investigue, iré comentando este post (no creo que actualice este primer mensaje porque se me hace mucho más pesado si no que comentaré en un nuevo mensaje los avances que haga, pero igual me animo)
¡Recordad que vosotros también podéis aportar a la investigación, ya sea con descubrimientos, o con más teoría de utilidad ^^!
Antes que nada, definir el concepto de afinidad. Todos aquellos que hayan tenido dibujo técnico de asignatura (que es donde yo aprendí este concepto) sabrán a qué me refiero cuando hablo de una afinidad, pero como sé que muchos de vosotros no habéis pasado aún por ahí, o directamente no lo habéis dado, os dejo por aquí una breve explicación, que asumiré que entendéis, ya que yo he intentando escribirlo con mis propias palabras, y es que realmente esa explicación es sencilla, concisa
San Google dijo:La Afinidad es una transformación geométrica plana, en la cual los puntos relacionados o transformados se denominan afines, y cumplen las siguientes condiciones:
Afinidad (I)
- La recta que une dos puntos afines siempre es paralela a una dirección dada, la dirección de la afinidad.
- Dos rectas afines se cortan siempre en un punto de una recta fija llamada eje de la afinidad.
Se define la razón de la afinidad k como la constante que relaciona las longitudes de segmentos afines, y también es la relación entre los segmentos que unen puntos afines con el eje (siguiendo la dirección de la afinidad).
Si k = -1 y la dirección de afinidad es perpendicular al eje, la afinidad es una simetría axial.
Tras leerme de nuevo la definición (para comprobar si realmente era correcta) leí lo de la simetría axial, y tras haber estado toqueteando un poco previamente, me he dado cuenta que realmente estamos tratando con simetrías axiales (respecto al eje X y al eje Y), pues hasta el momento no he encontrado ningún parámetro para poder definir la dirección de afinidad.
Por lo que he podido comprobar experimentalmente, el eje de simetría cae en el centro del sprite, por lo que esta "afinidad
Yo tengo poca información que aportar, aparte de la teórica porque aún no he indagado, y sólo he estado haciendo el tonto con el comando
Código:
AFFINEANIMCMD_FRAME(escalaEnX, escalaEnY, rotacion, duracion)
Código:
static const union AffineAnimCmd sSpriteAffineAnim_PlayerShrink[] = {
AFFINEANIMCMD_FRAME(-2, -2, 0, 0x30),
AFFINEANIMCMD_END
};
¡Recordad que vosotros también podéis aportar a la investigación, ya sea con descubrimientos, o con más teoría de utilidad ^^!