¿Cómo Hacer Back Buffering Para Juegos?


Objetivo: ¿Cómo Hacer Back Buffering Para Juegos?
Hola estoy haciendo unas funciones para el desarrollo de juegos en 2D en gambasy tengo un pequeño problema.
Si dibujo los objetos del juego con un timer, limpio y actualizo un drawingarea pero el efecto es que la imagen se mueve pero parpadea.
Para evitar esto se emplea una técnica llamada back buffering que consiste en dibujar los objetos en una imagen virtual y despues mostrarlos en la pantalla(DrawingArea).
El problema es que no me sale bien, me deja un rastro del movimiento de la imagen.

aquí como se hace http://www.frodrig.com/macedoniamagazine/epja2.htm

Y mi codigo:

PUBLIC SUB GDKDrawGameObjects2()
'Dibuja todos los objetos del almacenados en GDKMatObjects, en GDKMainDrawingArea
DIM n AS Integer
DIM Backbuffer AS NEW Picture

Backbuffer = GDKMainDrawingArea.Grab()
Draw.Begin(Backbuffer)
FOR n = 0 TO GDKMatObjects.Count - 1
Draw.Picture(GDKMatObjects[n].Image, GDKMatObjects[n].Left, GDKMatObjects[n].top, GDKMatObjects[n].Width, GDKMatObjects[n].Height)
NEXT
Draw.End()

GDKMainDrawingArea.clear
Draw.Begin(GDKMainDrawingArea)
Draw.Picture(Backbuffer, 0, 0)
Draw.End()
Backbuffer.Clear

END


El resultado es este:

pantallazojuegonumero1

Si alguien me puede ayudar lo agradecería mucho.

Saludos!

Perfil MP  
Objetivo: Re: ¿Cómo Hacer Back Buffering Para Juegos?
Echale un vistazo a este juego:

http://sologambas.blogspot.com/2011...espaciales.html

que usa las librerias SDL, para dibujar las naves espaciales...


Saludos

Objetivo: Re: ¿Cómo Hacer Back Buffering Para Juegos?
Muchas gracias!
Muchisimo mejor con SDL

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.5079s (PHP: -85% SQL: 185%)
Consultas SQL: 43 - Debug off - GZIP Activado