Anuncios Google

Problema Lentitud SDL

Hola compañeros:

Mi problema es el siguiente:

Uso un total de 20 capas virtuales en SDL, las cuales divido en dos grupos de 10.

El problema es que para evitar los rastros de imagenes he rellenado en cada bucle las 20 capas con un FillRect de color negro, pero esto ralentiza mucho el juego.

Mi pregunta es:

¿Que otro metodo puedo usar para limpiar las capas?

Si no existe, ¿Como puedo acelerar el juego usando este método?


Be Libre my Friend.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

limpiar

Si usas una capa o layer que ocupe toda la ventana, entonces supongo que no hay necesidad de usar un fill Rect para limpiar las capas, pues esta quedaria oculata tras la siguiente ciclo de actualizacion del juego de forma que parece que la hubieras limpiado.

Imagen de Andresmargar

Es que SDL

no es como la NDS, no está limitada a un número de capas, todo lo que hay que hacer es crear tu superficie principal, la limpias al principio de cada frame, y le dibujas los personajes y escenarios que tengas y no te limitas a capas, te dejo un codigo de como hacerlo:

 

// Inicia SDL y sus componentes...
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *pantalla = SDL_SetVideoMode(x, y, bpp, SDL_HWSURFACE | SDL_HWPALETTE);
 
// Bucle principal
while(1){
    // Limpia la pantalla
    SDL_FillRect(pantalla, NULL, SDL_MapRGB(pantalla->format, 0, 0, 0));
 
    // Dibujar fondos y sprites con SDL_BlitSurface()
    SDL_Rect posicion = {posicionx, posiciony, 0, 0};
    SDL_BlitSurface(imagenSDL, NULL, pantalla, &posicion);
 
    // Mostrar pantalla
    SDL_Flip(pantalla);
}

 

Saludos!


~Actualmente estudiando Ingeniería de las Tecnologías de la Telecomunicación en la Escuela de Ingenieros~

Imagen de OdnetninI

Muchas Gracias

Muchas Gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.