Habréis podido observar que los aviones parpadean al moverse por la pantalla. Esto se produce porque dibujamos directamente sobre la pantalla, es decir sobre lo que hemos llamado screen, de manera que dibujamos antes unos objetos y luego otros. Este problema es bien sencillo de solucionar con SDL gracias a la llamada técnica del doble búfer que nos ofrece. Mediante esta técnica dibujaremos sobre un búfer en el que una vez dibujados todos lo necesario, pasaremos a dibujar sobre el screen, de esta manera eliminaremos el parpadeo que creaba la técnica anterior.
Expliquemos la implementación de esta técnica sobre nuestro ejemplo:
No mostramos el código completo, porque como estos cambios han sido menores y son fácilmente identificables. Para terminar esta entrada del curso sólo comentar cómo sería el caso de que quisiéramos hacer que el juego se ejecutase en pantalla completa en lugar de en una ventana. Con SDL solamente tendríamos que incluir en el último parámetro SDL_FULLSCREEN:
screen = SDL_SetVideoMode( 640, 480, 16, SDL_FULLSCREEN | SDL_HWSURFACE | SDL_DOUBLEBUF);
Como podéis observar los valores se incluyen con OR lógicos (|).
https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.
Ver comentarios
Yo lo que he logrado hasta el momento es mover las imágenes, pero me queda una estela de las imágenes, la cual es muy fea...
https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_63c067db16765bab1eea.png