Dirty Rects (PyGame)

Juan José Alonso. kernel.no.found en gmail.com
Mar Mayo 22 04:33:34 CEST 2007


Hola a todos.

¿Por casualidad alguien en la lista desarolla videojuegos con Python y
PyGame?
Si es asi me gustaria plantear una duda, aunque preferiria charlar con el en
alguna mensajeria instantanea.

El problema es el siguiente: Si actualizo mi ventana con pygame.display.flip()
repintaria toda la ventana cada frame, lo cual hace que solo obtenga
30-40fps (y eso aun sin pintarlo todo)
Entonces estoy investigando sobre pygame.display.update() para actualizar
solo aquellos rects de la pantalla que han variado.

Mi escena de ejemplo se divide en 2 partes principalmente, un background
tamaño ventana de 800x600 y un mapa de tiles isometricos (200 caben en
pantalla)
Actualmente bliteo el background, y a continuacion entro en bucle para
blitear cada tile en su posicion correcta. Ahora bien, si recojo todos los
rects que me retornan los blits
y se los pado a pygame.display.update() hara lo mismo que si hago un flip,
porque uno de los rects (el background) es TODA la pantalla.

Este background se ve cuando estas en los bordes del mapa isometrico
(imagina lo negro de fondo de simcity) y cuando scrolleas el mapa hacia
dentro, no se podra ver nada del fondo, en #Pygame me lo dicen claro, "no
pintes el background cuando no lo necesites" Y mi duda es, ¿como se yo
cuando debo pintarlo o cuando no...?

Espero que no tenga que controlar la variable offset del scroll del mapa, y
y verificar ke no se esta viendo ni la parte izquierda, derecha, superior,
inferior del mapa U_U


Como ya dije, preferiria charlar tranquilamente.
Un gran saludo y muchisimas gracias por leerme, y mas aun por responderme :D

-- 
Juan José Alonso. KarlsBerg.
eMail: kernel.no.found en gmail.com
MSN: kernel.no.found en gmail.com




Más información sobre la lista de distribución Python-es