Esta biblioteca de juegos de Python está llena de características, incluidas algunas herramientas simples que puede usar para crear un desplazamiento de paralaje suave.

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.

instagram viewer

El código utilizado en este artículo está disponible en este repositorio GitHub y es gratis para su uso bajo la licencia MIT.

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. recto objetos y definir sus posiciones y dimensiones.

Dentro del ciclo del juego, maneje eventos como salir del juego. También puedes manejar movimiento del jugador basado en 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 pygame. Rectificar objetos. 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.

# Agregue este código debajo de la sección anterior

capas_de_fondo = [
pygame. Rect(0, 0, ancho_de_pantalla, alto_de_pantalla),
pygame. Rect(0, 0, ancho_de_pantalla, alto_de_pantalla)
]

colores_de_fondo = [(30, 30, 30), (60, 60, 60)]
velocidades_de_fondo = [0.1, 1.0]

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:

para i en rango (largo (background_layers)):
capas_de_fondo[i].x -= velocidades_de_fondo[i]

si background_layers[i].x <= -screen_width:
capas_de_fondo[i].x = 0

pygame.draw.rect (pantalla, colores_de_fondo[i], capas_de_fondo[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, dibujar cada capa de fondo rectangular en la pantalla usando pygame.dibujar.rect() y pasando el correspondiente color y pygame. Recto objeto.

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:

# Definir las posiciones y velocidades de la plataforma
rect1 = pygame. Rect(50, altura_pantalla - 100, 200, 10)
rect2 = pygame. Rect (pantalla_ancho - 250, altura_pantalla - 200, 200, 10)

plataformas = [
{"recto": rect1, "velocidad": 3},
{"recto": rect2, "velocidad": 1}
]

# Agregue este código dentro del ciclo del juego

# Movimiento del jugador
llaves = pygame.key.get_pressed()

si teclas[pygame. K_IZQUIERDA] y jugador_x > 0:
jugador_x -= jugador_velocidad

para plataforma en plataformas:
plataforma["recto"].x -= plataforma["velocidad"]

si teclas[pygame. K_DERECHO] y jugador_x < ancho_pantalla:
jugador_x += jugador_velocidad

para plataforma en plataformas:
plataforma["recto"].x += plataforma["velocidad"]

para plataforma en plataformas:
pygame.draw.rect (pantalla, (0, 255, 0), plataforma["recto"])

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:

importar aleatorio

# Agregue este código antes del ciclo del juego

colores_de_fondo = [
(aleatorio.randint(0, 255), aleatorio.randint(0, 255), aleatorio.randint(0, 255)),
(aleatorio.randint(0, 255), aleatorio.randint(0, 255), aleatorio.randint(0, 255)),
(aleatorio.randint(0, 255), aleatorio.randint(0, 255), aleatorio.randint(0, 255))
]

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. recto objetos, colores y velocidades:

# Agregue este código antes del ciclo del juego

capas_de_fondo = [
pygame. Rect(0, 0, ancho_de_pantalla, alto_de_pantalla),
pygame. Rect(0, 0, ancho_de_pantalla, alto_de_pantalla),
pygame. Rect(0, 0, ancho_de_pantalla, alto_de_pantalla),
pygame. Rect(0, 0, ancho_de_pantalla, alto_de_pantalla)
]

colores_de_fondo = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]

velocidades_de_fondo = [1, 2, 3, 4]

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.png, y 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().

# Agregue este código antes del ciclo del juego

imágenes_de_fondo = [
pygame.imagen.carga("fondo_0.png").convertir(),
pygame.imagen.carga("fondo_1.png").convertir(),
pygame.imagen.carga("fondo_2.png").convertir()
]

velocidades_de_fondo = [1, 2, 3]

para i en rango (longitud (imágenes_de_fondo)):
tamaño = (pantalla_ancho, pantalla_alto)
background_images[i] = pygame.transform.scale (background_images[i], tamaño)

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

# Actualizar este código dentro del ciclo del juego

para i en rango (largo (background_layers)):
capas_de_fondo[i].x -= velocidades_de_fondo[i]

si background_layers[i].x <= -screen_width:
capas_de_fondo[i].x = 0

pantalla.blit (imágenes_de_fondo[i], capas_de_fondo[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.