1 de agosto de 2016

Definición de objetos (1/2)

En una entrada anterior habíamos mencionado algo sobre cómo animar un objeto a partir de una línea de tiempo, emulando algo similar a la línea de tiempo que ofrece Adobe Flash habíamos establecido una variable matriz en la cual se asignaba a cada elemento (equivalente a un intervalo de tiempo de juego), el número de frame/fotograma de la hoja de sprites que debe imprimirse en ese instante de la secuencia.
El método es útil para algunas secuencias de frames y animaciones pequeñas, pero ¿qué ocurre si tenemos una gran cantidad de acciones con animaciones extensas?
Existe otro método que podemos utilizar, de hecho el método que veremos a continuación nos permite manejar otros datos de la animación que nos serán de gran utilidad al momento de programar las interacciones entre los objetos del juego.
Anteriormente se analizaba las colisiones en 2D, se mencionó el modo de prueba de objetos del Street Fighter 2.
Extendiendo un poco la información ya presentada, podemos destacar los parámetros siguientes:
  • CHR CTR: El número de intervalos de tiempo de juego que la frame de la animación se va a mostrar antes de avanzar a la siguiente frame.
  • CHR DIR: Dirección actual del personaje, 00 = mirando a la izquierda, 01 = mirando a la derecha.
  • (Sin etiqueta, debajo de CHR DIR): ID actual de secuencia de animación.
  • HEAD: ID de caja de vulnerabilidad Cabeza para la frame de animación actual.
  • BODY: ID de caja de vulnerabilidad Cuerpo para la frame de animación actual.
  • FOOT: ID de caja de vulnerabilidad Piernas para la frame de animación actual.
  • WEAK: ID de caja de punto Débil para la frame de animación actual.
  • ATCK: ID de caja de Ataque para la frame de animación actual.
  • BODY1: ID de caja de presión para la frame de animación actual.
  • KAGE: ID de sombra de fondo para la frame de animación actual.
  • PRIO: Prioridad del sprite para la frame de animación actual.
  • CATCH: ID de Agarre para la frame de animación actual. Determina la posición y desplazamiento del sprite del oponente para cuando está agarrado por una técnica de lanzamiento. Parece haber una para cada personaje, por ejemplo, cada personaje tiene su propia selección de sprite y posición de desplazamiento para reaccionar a una frame de Ryu con un valor de Agarre de 01, etc.
  • BLOCK: Bandera de bloqueo para la frame de animación actual. 00 = no bloquea, 01 = bloquea de pie, 02 = bloquea de rodillas.
  • Weak No: Efecto extra para aplicar si la caja de punto Débil es tocada durante la frame de animación actual. 00 = nada, 02 = daño doble.
  • SIT: Bandera de Agacharse para la frame de animación actual 00 = de pie, 01 = agachado.
  • OBJ SUU: Número de tiles de la frame de animación actual.
  • DX: Desplazamiento en X para la hitbox mostrada actualmente.
  • DY: Desplazamiento en Y para la hitbox mostrada actualmente.
  • SX: Radio en X para la hitbox mostrada actualmente.
  • SY: Radio en Y para la hitbox mostrada actualmente.
  • ATCK DNo.: Tabla de daño para la caja de Ataque de la frame de animación actual.
  • SD CODE: Sonido que inicia cuando se toca la caja de Ataque de la frame de animación actual.
  • ATCK EX.: Tipo de ataque para la caja de Ataque de la frame de animación actual. 00 = estándar con base en el suelo normal, 01 = barrido, 02 = salto normal, 03 = movimiento especial (causa poco daño durante bloqueo), 04 = normal con propiedades especiales (derribar, etc.).
  • ADJUST1.: Tabla de daño adicional al azar para la caja de Ataque de la frame de animación actual cuando la vitalidad es 3C o superior.
  • ADJUST2.: Tabla de daño adicional al azar para la caja de Ataque de la frame de animación actual cuando la vitalidad es 3B o inferior.
  • EX Code: Efecto en el golpe para la caja de Ataque de la frame de animación actual si ATCK EX = 03 o 04.
Tal vez no necesitemos utilizar todos estos datos para nuestro proyecto, pero pueden servirnos de base. Un proyecto propio utiliza tan solo 2 cajas de colisiones (una de vulnerabilidad y otra de ataque). ¿De que forma se pueden manejar esos datos? La respuesta se dará en la siguiente parte.

No hay comentarios.:

Publicar un comentario