Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: kbks en 21 de Octubre de 2006, 02:44:02 AM

Título: Invertir sprite en Direct3D
Publicado por: kbks en 21 de Octubre de 2006, 02:44:02 AM
Hola a todos, me encuentro programando un juego de scroll lateral que ya mostraré por aquí cuando tenga algo para mostrar (Es lo que tiene ser un lento dibujando, que llegas a un punto en el que te presentas con 5000 lineas de código y todavía estas moviendo por la pantalla ese cuadro con colores que dibujaste en el paint y ya ha echo de personaje, de enemigos, de items y hasta de fondo de pantalla en una ocasion :oops:  )

Bueno a lo que iba ,que si no me lio. Hasta ahora habia usado una librería propia en DDraw en el que invertir un sprite es extremadamente sencillo ya que con dos RECT seleccionas el origen en la imagen y el destino en la pantalla intercambiando los lados.

Bueno, pues me decidí a actualizar la pequeña librería 2d a Dx9, ya que su único objetivo es la de hacer juegos para mí y para mis amigos (y para alguna practica que otra de la Universidad...). El problema viene al intentar invertir un Sprite, ya que al dibujarlo con D3DXSPRITE::Draw no permite seleccionar el destino como un RECT.
Inmediatamente pensé en matrices para transformarlo pero no he encontrado ninguna función para crear una matriz que invierta el sprite (De momento uso exclusivamente D3DXMatrixAffineTransformation2D para el resto de transformaciones).

Si alguien pudiera ayudarme le estaria eternamente agradecido, sobre todo porque no creo que el profesor me mire con buenos ojos si vé una textura con la misma animaciones repetidas una para cada lado  :wink:
Título: Invertir sprite en Direct3D
Publicado por: LC0 en 21 de Octubre de 2006, 11:51:43 AM
Borrado. Esto no iba aquí, lo siento.
Título: Invertir sprite en Direct3D
Publicado por: Pogacha en 21 de Octubre de 2006, 07:01:15 PM
La matriz para un horizontal mirror es:
-1  0  0  0
 0  1  0  0
 0  0  1  0
 0  0  0  1


La matriz para un vertical mirror es:
 1  0  0  0
 0 -1  0  0
 0  0  1  0
 0  0  0  1


Multiplicas y ya ...

Saludos.
Título: Invertir sprite en Direct3D
Publicado por: kbks en 22 de Octubre de 2006, 02:32:13 AM
Gracias Pogacha, el problema era que como para mi las 3D solo son cosas que les pasana otros no había utilizado nunca matrices de transformación y desconozco la teoria así que por eso tiraba completamente de las fundiones que te dá DirectX para crearlas.
Título: Invertir sprite en Direct3D
Publicado por: Pogacha en 22 de Octubre de 2006, 04:40:16 PM
Pero ... lo solucionaste?
Título: Invertir sprite en Direct3D
Publicado por: kbks en 22 de Octubre de 2006, 09:29:43 PM
Si  :D  aunque me da algunos problemas cuando en un mismo sprite combino rotación con el mirror aunque son "problemas menores". Gracias Pogacha.