Cómo implementar fondos de desplazamiento en Pygame

Publicado el 15 julio 2023 por Maxisoria @maxialiados

Los fondos de desplazamiento pueden mejorar en gran medida el atractivo visual y la profundidad de un juego. Pueden crear la ilusión de movimiento, dando al juego una sensación dinámica e inmersiva. Puede implementar fondos de desplazamiento en solo unos pocos pasos usando Pygame.

Pygame es una biblioteca popular de Python que puedes usar para desarrollar juegos. Agregar fondos de desplazamiento a sus proyectos de Pygame les dará vida y brindará una experiencia más atractiva para los jugadores.

Crea un juego simple

Para comprender el concepto de desplazamiento de fondos en Pygame, comience creando un juego simple en el que el jugador pueda moverse hacia la izquierda y hacia la derecha. También puede incluir dos plataformas, representadas por rectángulos, para que sirvan como entorno de juego. Crear un nuevo archivo llamado juego-simple.py.

Primero, importe el módulo pygame e inicialícelo. Luego define la posición inicial del jugador y la velocidad de movimiento. Crear plataformas usando pygame.Rect objetos y definir sus posiciones y dimensiones.

Dentro del ciclo del juego, maneje eventos como salir del juego. También puede manejar el movimiento del jugador en función de las entradas táctiles o del teclado.

Aquí está el resultado del juego simple:

Crear diferentes capas

Para lograr el efecto de desplazamiento, puede crear varias capas de fondos con diferentes colores. Cada capa se moverá a una velocidad diferente, creando un efecto de paralaje. Este efecto da la ilusión de profundidad y mejora la sensación de movimiento en el juego.

Defina dos capas de fondo, cada una cubriendo toda la ventana del juego, usando objetos pygame.Rect. Defina también los colores de cada capa en el colores_de_fondo lista. El velocidades_de_fondo lista determina la velocidad a la que se moverá cada capa.

Para crear el efecto de fondo de desplazamiento, debe actualizar las posiciones de las capas de fondo en el bucle del juego. Moverá cada capa horizontalmente en función de su velocidad asignada.

Crear un nuevo archivo llamado desplazamiento-bg.py y agregue el código con las siguientes actualizaciones:

for i in range(len(background_layers)):
background_layers[i].x -= background_speeds[i]
if background_layers[i].x <= -screen_width:
background_layers[i].x = 0
pygame.draw.rect(screen, background_colors[i], background_layers[i])

Iterar a través de cada capa de fondo. Reste la velocidad correspondiente de la coordenada x de la capa, haciendo que se mueva hacia la izquierda. Si una capa llega al borde izquierdo de la pantalla, restablezca su posición a la derecha, creando un efecto de desplazamiento continuo.

Finalmente, dibuje cada capa de fondo rectangular en la pantalla usando pygame.dibujar.rect() y pasando el objeto color y pygame.Rect correspondiente.

Agregar un efecto de paralaje mientras se mueve

Para mejorar el efecto de paralaje, puede modificar el movimiento de la plataforma para que ocurra cuando el jugador se está moviendo. Esto creará una fuerte sensación de profundidad y movimiento dinámico. Crear un nuevo archivo llamado parallax.py y agregue el código con las siguientes actualizaciones:

Representar las plataformas como diccionarios que contienen tanto el objeto rectángulo (rect) como la velocidad a la que debe moverse la plataforma (velocidad). Las plataformas se actualizan en el bucle del juego según el movimiento del jugador.

Al implementar esta modificación, el efecto de desplazamiento solo estará activo cuando el jugador se esté moviendo activamente, mejorando aún más la ilusión de profundidad y movimiento.

Incluyendo características adicionales

Puede implementar varias características adicionales para mejorar los fondos de desplazamiento en su juego. Aquí hay unos ejemplos.

Aleatorizar colores de fondo

Para agregar variación a las capas de fondo, puede aleatorizar sus colores. Puede hacerlo modificando el colores_de_fondo lista:

Agregar más capas de fondo

Puede experimentar agregando más capas de fondo para crear un efecto de paralaje más rico. Simplemente defina adicional pygame.Rect objetos, colores y velocidades:

Usar imágenes para fondos

En lugar de colores sólidos, puede usar archivos de imagen como fondos. Pygame proporciona funciones para cargar y renderizar imágenes.

Cargar los archivos de imagen fondo_0.png, fondo_1.pngy fondo_2.png usando pygame.image.load(). Use el método convert() para mejorar el rendimiento y escalar las imágenes para que coincidan con las dimensiones de la pantalla con pygame.transformar.escala().


background_images = [
pygame.image.load("background_0.png").convert(),
pygame.image.load("background_1.png").convert(),
pygame.image.load("background_2.png").convert()
]
background_speeds = [1, 2, 3]
for i in range(len(background_images)):
size = (screen_width, screen_height)
background_images[i] = pygame.transform.scale(background_images[i], size)

Finalmente, actualice el ciclo donde dibuja las capas de fondo para usar las imágenes:


for i in range(len(background_layers)):
background_layers[i].x -= background_speeds[i]
if background_layers[i].x <= -screen_width:
background_layers[i].x = 0
screen.blit(background_images[i], background_layers[i])

Estas son algunas de las mejores prácticas a tener en cuenta al implementar fondos de desplazamiento en sus proyectos de Pygame.

Optimizar el rendimiento

Los fondos de desplazamiento implican una representación y actualización continuas. Para garantizar un juego fluido, considere optimizar su código y minimizar los cálculos innecesarios.

Experimente con velocidades de capa

Ajustar las velocidades de las capas de fondo puede crear diferentes efectos. Juega con diferentes valores para encontrar el equilibrio adecuado y lograr el impacto visual deseado.

Prueba en diferentes tamaños de pantalla

Asegúrese de que sus fondos de desplazamiento funcionen bien en varias resoluciones de pantalla. Considere implementar una escala dinámica o usar diferentes imágenes de fondo para diferentes relaciones de aspecto.

Use formatos de imagen apropiados

Si decide utilizar imágenes para sus fondos, elija el formato de imagen adecuado (por ejemplo, PNG, JPEG) para equilibrar el tamaño del archivo y la calidad de la imagen. También puede reducir los tiempos de carga comprimiendo y optimizando sus imágenes.

Considere el uso de la memoria

Si planea usar muchas imágenes de alta resolución para sus fondos, tenga en cuenta los requisitos de memoria. Las imágenes grandes pueden consumir una cantidad significativa de memoria, lo que podría afectar el rendimiento y la capacidad de respuesta de su juego.

Al incorporar fondos de desplazamiento, puede crear diferentes entornos, como paisajes en movimiento, paisajes urbanos futuristas o mundos submarinos. El efecto de paralaje agrega un toque dinámico, haciendo que el mundo del juego se sienta vivo e interactivo.

Recuerde experimentar, iterar y explorar posibilidades creativas con fondos de desplazamiento para que sus juegos sean más divertidos y cautivadores para los jugadores.