Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas moviendo una Surface

Iniciado por NaKelS, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

NaKelS

                                Wenas,
Consegui un par de ejemplos de programacion en directdraw:
- uno de ellos mostraba un coche girando consiguiendo este efecto a partir de un bitmap con las diferentes posiciones del coche y cargandolas continuamente en una Surface, supongo q sabreis a lo que me refiero.
- el otro cargaba un bitmap en una surface la cual podias mover por la pantalla mediante las teclas de moviento.

Pues bien, mi primera meta (ya que soy nuevo en esto de la programacion en DirectX) era mezclar los dos proyectos y conseguir mover la surface del coche girando, mover la animacion mediante las flechas.

Despues de muchas pruebas lo consigo mover por la pantalla :agh: pero.... se queda un rastro, es decir, al mover en una direccion se desplaza la animacion pero me deja un trozo parpadeando ... total que deja rastro por donde lo muevo.

Utilizo dos surfaces (front y back) como es normal por lo que he visto y una funcion que esta continuamente funcionando que es la que hace que el coche gire y donde voy redibujando el coche en la posicion que le corresponda segun las teclas que vas pulsando.
Supongo que antes de mover tengo que borrar lo que hay pero no se como... pero probado con esto:
hRet = g_surfCar.g_pDDSFront->Flip(NULL, 0 );
Siendo hRet del tipo HRESULT y g_surfCar.g_pDDSFront del tipo LPDIRECTDRAWSURFACE7 pero... no consigo lo que quiero :triste:

Si la meto en el bucle que dibuja parpadea todo y sigue dejando rastro. Tambien he intentado poner esa linea en el WinProc cuando se pulsa una tecla pero nada.

¿Alguna Idea?


PD:No se si entendereis algo, por que he escrito todo esto muy deprisa y no se ni lo que he puesto :lengua:

Gracias                                

AK47

                                Saludos
Como has dicho, tienes que borrar o rellenar el fondo con algun color o con otro imagen. Para rellenarlo con un color usa la funcion Blt con el flag DDBLT_COLORFILL y le pasas un puntero de DDBLTFX. Mira la documentacion del SDK para saber todos los detalles :sonriendo:                                






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.