Creando un fondo con scroll

Publicado en mayo 16, 2007. Archivado en: PyGame, Python |

Es una característica típica de los viejos juegos de naves, hay un tutorial en ingles muy bueno aquí, pero para este post hice algo diferente y mucho mas fácil de entender.

El codigo del ejemplo lo pueden descargar de aquí (se llama scroll.zip)

Hago una pequeña explicación, primero creamos la clase Fondo pero con 2 images, solo sirve para que puedan ver el efecto scroll con un fondo diferente

class Fondo(pygame.sprite.Sprite):   
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image, self.rect=load_image(‘fondo.jpg’,0)
        self.image2, self.rect2 = load_image(‘fondo2.jpg’,0)

En la función main() vemos el código clásico de cualquier juego en pygame, definimos la pantalla, creamos un fondo y un objeto de tipo clock que nos servirá para fijar los cuadros por segundos, en este caso lo fijaremos a 30 escribiendo clock.tick(30) dentro del while.

desplazamiento = 0
imagen_de_fondo=imagen.imagen2
while 1:
   
        for event in pygame.event.get():
            if event.type == QUIT:
                raise SystemExit
            if  event.type == MOUSEBUTTONDOWN:
                imagen_de_fondo=fondo.image
            elif event.type is MOUSEBUTTONUP:
                imagen_de_fondo=fondo.image2
               

        desplazamiento +=2
        if desplazamiento==64: desplazamiento=0
        screen.blit(imagen_de_fondo,(0,0), (desplazamiento,0,HEIGHT,WIDTH))
        pygame.display.flip()
        clock.tick(30)

Hay un par de cosas para remarcar:

  • Al clickear el mouse intercambiamos el fondo
  • Hay una variable desplazamiento que va desde 0 a 64 (de 2 en 2) eso hace que en cada cuadro desplacemos el fondo 2 pixels.

La función blit de este ejemplo copia la imagen de fondo en la superficie screen, pero en este caso le pasamos 2 parametros nuevos, uno sirve para posicionarlo en (0,0) es decir (no estoy seguro) en la esquina superior izquierda y con el 2do parámetro le enviamos un rectángulo de la imagen fondo, pero desplazado.
Las imagenes de fondo tienen 124 pixeles mas de ancho que la pantalla, si no hiciéramos eso no podríamos lograr el efecto de desplazamiento.

Powered by ScribeFire.


Lee la entrada completa | Deja un Comentario ( 6 so far )

Recientemente en Aprendiendo a Programar en Python con PyGame para hacer Video Juegos...

La clase sprite

Publicado en mayo 15, 2007. Archivado en: PyGame, Python |

Visor de Fotos

Publicado en mayo 14, 2007. Archivado en: PyGame, Python |

Arrays en Pygame

Publicado en mayo 13, 2007. Archivado en: Array, PyGame, Python |

Nociones fundamentales de pygame

Publicado en mayo 12, 2007. Archivado en: PyGame, Python |

Nuevo colaborador del – Blog Palermi

Publicado en mayo 9, 2007. Archivado en: Flash |

Crear un Metodo en Python

Publicado en mayo 8, 2007. Archivado en: Clases, Metodos, Python |

Función constructora de una clase

Publicado en mayo 8, 2007. Archivado en: Clases, Metodos, Python |

Creando una Clase en Python 1

Publicado en mayo 8, 2007. Archivado en: Clases, Python |

Colocar una Imagen en una ventana con Pygame

Publicado en mayo 8, 2007. Archivado en: Flash |

Mostrar Ventana con Pygame

Publicado en mayo 7, 2007. Archivado en: PyGame |

    Acerca de

    Notas personales de lo que aprendo en Programación de Video juegos en Python con PyGame

    RSS

    Suscribirse a través de RSS

    • Subscribe with Bloglines
    • Add your feed to Newsburst from CNET News.com
    • Subscribe in Google Reader
    • Add to My Yahoo!
    • Subscribe in NewsGator Online
    • Últimos comentarios a todas las entradas en RSS

    Meta

Liked it here?
Why not try sites on the blogroll...

Seguir

Get every new post delivered to your Inbox.