Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Invertir sprite en Direct3D

Iniciado por kbks, 21 de Octubre de 2006, 02:44:02 AM

« anterior - próximo »

kbks

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:

LC0

Borrado. Esto no iba aquí, lo siento.

Pogacha

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.

kbks

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.

Pogacha


kbks

Si  :D  aunque me da algunos problemas cuando en un mismo sprite combino rotación con el mirror aunque son "problemas menores". Gracias Pogacha.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.