Cenários
Câmera, Mapas e Parallax
Módulos: camera, tilemap, parallax | Dificuldade: Avançado
Liberte seu jogo do limite de 800×600 pixels. Com estas três ferramentas integradas, você pode criar mundos gigantescos com fundos de ilusão 3D que rolam infinitamente.
1. O Arquivo de Mapa (TXT)
Desenhe seu cenário em um bloco de notas. O caractere # pode ser uma parede, e o . um espaço vazio.
# Arquivo: level_1.txt
####################
#..................#
#....####..........#
#..................#
####################
2. Carregando e Focando a Câmera
Ao desenhar um Sprite ou um TileMap, a Power PPlay 2.0 verifica automaticamente se existe uma câmera na cena. Se existir, as coordenadas são ajustadas sem você perceber.
from PPlay.camera import Camera
from PPlay.tilemap import TileMap
from PPlay.parallax import ParallaxSystem
cam = Camera(800, 600)
# O Dicionário de Mapeamento
mapping = {
'#': 'tijolo.png',
'solido': ['#'] # Define que o Tijolo bloqueia o player
}
mapa = TileMap(tamanho_tile=64)
mapa.carregar_mapa("level_1.txt", mapping)
# Fundo Infinito (Parallax)
fundo = ParallaxSystem()
fundo.add_layer("ceu_estrelado.png", 0.0) # 0.0 = Estático
fundo.add_layer("montanhas.png", 0.4) # 0.4 = Move devagar
while True:
# A Câmera persegue o personagem com "Lerp" (Suavização de 0.1)
cam.follow(player, suavizacao=0.1)
fundo.draw() # Desenha montanhas infinitas
mapa.draw() # Desenha apenas os tijolos que aparecem na tela (Culling)
player.draw()
janela.update()