Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





D3DXSprite

Iniciado por alpedreteño, 17 de Octubre de 2002, 08:08:01 PM

« anterior - próximo »

alpedreteño

                                Estoy trabajando con Direct3D y quiero poner algunos Sprites encima de la escena 3D. Como indicadores de vida y tal. Intente usar D3DXSprite.draw() pero no consigo que me pinte nada. ¿TEngo que desactivar el zbuffer? ¿Tengo que cambiar la camara?                                

Lord Trancos

                                has usado el ID3DXSprite.Begin antes de empeazar a dibujar?                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

alpedreteño

                                jeje....... :I . Que despistados que estamos. poz si que va a ser eso. Ahora me da un error en tiempo de ejecucion haber si lo arreglo.
GRacias                                

alpedreteño

                                Nada sigue sin pintarmelo.
El problema ahora creo que es el siguiente.
Estoy programando en c# con una libreria dxvbliba.dll que se consigue al exportar dx8vb.dll utilizando una herramienta pa exportar librerias que viene con el FrameWork SDK. En la documentacion de DirectX pone que el metodo draw() recibe un parametro color (long) que tiene que estar 0xFFFFFFFF pa que te pinte el sprite tal cual. Pero si le meto ese valor casca al compilar porque me dice que espera un int. Es como si se hubiera exportado mal la libreria. Le pongo 0xFFFFFF (con dos ff menos) y tira pero no me lo pinta. Creo que las dos FF que le faltan son el valor del alpha y por eso no me lo pinta. Estoy diciendo tonterias???                                

sés

                                0xffffffff es un int (4 bytes), me extraña que te dé ese error. Prueba a poner: (int)0xffffffff                                
Soy indeciso... ¿o no?

synchrnzr

                                Sino te chuta eso, prueba con (usigned int) ;)                                

sés

                               
Citar
...me dice que espera un int.
Citar
...prueba con (usigned int)

:o                                
Soy indeciso... ¿o no?

jpastor

                                Prueba metiendole al int el valor -1. Si sigue sin funcionar otra idea sería cambiar tu código para que en vez de int sea un unsigned int (DWORD) y poder asignarle 0xffffffff (¿te referias a eso sync?).                                

synchrnzr

                                Sipe, una cosa que he visto q cambia de compilador a compilador (y tiro porque me toca) es que los ints a veces los toman como signed y otras veces como unsigned por defecto. Si en su caso lo toma como signed (no tengo ni idea de eso) entonces 0xFFFFFFFF es mucho mayor de 0x7FFFFFFF que sería el valor máximo positivo... lo del -1 también puede funcionar si no te chuta el cast a unsigned int

Sync                                

sés

                                Pos no recuerdo que a mí 0xFFFFFFFF me lo ha tomado nunca como negativo (ni como positivo).
Es hexadecimal y "no tiene" signo, los warnings me los da si lo pongo en decimal (o asignando una variable de diferente tipo, claro).                                
Soy indeciso... ¿o no?

jpastor

                                A ver, se me acaba de ocurrir viendo una cosilla que viene con DX:



inline int DWtoI ( DWORD dw ) { return *((int*)&dw); }



int TuPropioEIntransferibleInt = DWtoI (0xffffffff);

                               

sés

                                Joer, que enrevesao. A mí siempre me ha funcionado con un simple (int)variable                                
Soy indeciso... ¿o no?

jpastor

                                No es exactamente lo mismo.                                

sés

                                Pos no veo la diferencia, ¿alguien melosplica?                                
Soy indeciso... ¿o no?

jpastor

                                Si no ves la diferencia es porque no hay diferencia. Estoy dormido y aburrido, y estaba pensando de donde saque la funcion (que es para "pasar" de float a dword).

sés 1 - 0 jpastor                                






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.