Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





no me vuelve a dibujar el area transparente de una imagen.

Iniciado por _16BITGuy_, 21 de Julio de 2007, 08:52:22 PM

« anterior - próximo »

_16BITGuy_

Me explico, tengo 2 fondos dibujandose a la vez y despues de estos se dibujan una nave y un texto. La nave esta puesto con aquello del canal alpha (aun no se muy bien como va), y resulta que la primera vez que se dibuja esto perfecto, pero los siguientes frames el area que seria transparente del archivo de imagen de la nave, no se vuelve a dibujar, de modo que es como si la nave se llevara un trozo del fondo, es como si este trozo no volviera a dibujarse siquiera al borrar la pantalla de color negro.
Este es el codigo del dibujo:

void dibujado(int bLogicUpdate)
{
SDL_FillRect(CRM32Pro.screen,
        &CRM32Pro.screen->clip_rect,
SDL_MapRGB(CRM32Pro.screen->format,0,0,0));
scrollLoop(bg,&sclBg);
scrollLoop(stars,&sclStars);
nave->Draw(CRM32Pro.screen);
fnt->PutString(CRM32Pro.screen,20,20,"Space Mercenaries \"Demo\"",NULL);

}

Los ajustes de la pantalla y demas estan asi:

CRM32Pro.Config.VideoWidth = 640;
CRM32Pro.Config.VideoHeight = 480;
CRM32Pro.Config.VideoBPP = 32;
CRM32Pro.Config.VideoAccel = ACCEL_HARDSMOOTH;
CRM32Pro.Config.VideoWindow = 1;
CRM32Pro.Config.Title = "Naves";
CRM32Pro.SetVideoMode();
CRM32Pro.SetRenderCallback(dibujado);


¿A que puede deberse esto?

_16BITGuy_

nada nada, que al final habia que desactivar el AutoRestore() del sprite. Que por cierto segun la ayuda (aunque yo tampoco traduzco muy bien por k la tengo en ingles), creo que dice que en ACCEL_HARDSMOOTH el autorestore es 0 por defecto, y yo he tenido que escribirlo para que asi sea.

Citar
If you used ACCEL_HARDSMOOTH(which will try to set a double-buffer) acceleration mode, it is disabled by default.

TheAzazel

uhm...voy a echar un ojo a eso...

Por cierto,se puede ver una demo de lo que estas haciendo? :P

Saludos

TheAzazel

Estoy corrigiendo bugs que me ha reportado la gente y le ha tocado el turno al tuyo que gracias a Dios ha sido muy sencillo:

veras...la documentacion esta bien, si hay ACCEL_HARDSMOOTH el autorestore se pone en off PERO tu no estas en ese modo, una cosa es que lo hayas intentado utilizar, que lo haces bien, y otra cosa es que lo haya activado. Si revisas el log veras que hay un mensaje advirtiendo que no fue posible activar el modo que querias...porque? porque tambien estas pidiendo el modo ventana!! y double buffer en modo ventana solo te lo daria si usas el render de opengl, ni directX ni windib ni nada de nada :)

Por lo tanto, es importante que reviseis el log para ver si hay algun problema de estos.

PD: si estas usando visual studio puedes agregar esta linea:
CRM32Pro.Config.VideoRenderer = RENDER_OPENGL;
utilizara OpenGL, te ira todo mas rapido, soporte alpha por hardware, doublebuffer en modo ventana PERO aun no esta del todo probado en la lib, sera para la v5.00 asi que pruebalo solo para ver si te funciona o no.

_16BITGuy_

Cita de: "TheAzazel"Estoy corrigiendo bugs que me ha reportado la gente y le ha tocado el turno al tuyo que gracias a Dios ha sido muy sencillo:

veras...la documentacion esta bien, si hay ACCEL_HARDSMOOTH el autorestore se pone en off PERO tu no estas en ese modo, una cosa es que lo hayas intentado utilizar, que lo haces bien, y otra cosa es que lo haya activado. Si revisas el log veras que hay un mensaje advirtiendo que no fue posible activar el modo que querias...porque? porque tambien estas pidiendo el modo ventana!! y double buffer en modo ventana solo te lo daria si usas el render de opengl, ni directX ni windib ni nada de nada :)

Por lo tanto, es importante que reviseis el log para ver si hay algun problema de estos.

PD: si estas usando visual studio puedes agregar esta linea:
CRM32Pro.Config.VideoRenderer = RENDER_OPENGL;
utilizara OpenGL, te ira todo mas rapido, soporte alpha por hardware, doublebuffer en modo ventana PERO aun no esta del todo probado en la lib, sera para la v5.00 asi que pruebalo solo para ver si te funciona o no.
Ajá, entiendo, pues probaré a activar OpenGL para eso, aunque tampoco es que me sea muy obligatorio, yo lo puse en ventana el juego para que me fuera mas comodo luego el hacer el debug.

Citar
uhm...voy a echar un ojo a eso...

Por cierto,se puede ver una demo de lo que estas haciendo?  

Saludos
Justo lo que estoy haciendo ahora es una demo xD(no me quise meter a fondo en el juego, si veo que la demo me ha ido bien sigo con la idea que tengo del juego entero de lo contrario no) en cuanto la termine y vea que sale bien, lo subire y lo dejare por aqui para que lo veais si eso.

Un Saludo!






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.