Pular para o conteúdo
Baixar

Fundo com parallax

Você quer montanhas ao fundo que andam mais devagar que o chão quando a câmera se move. Esse efeito se chama parallax.

  1. Importe a imagem das montanhas como sprite.
  2. No painel Camadas, crie uma camada de Fundo chamada Montanhas e arraste para baixo das outras (só o céu fica atrás dela).
  3. No Inspetor da camada, escolha o Sprite e marque Repetir H, para a imagem se repetir na horizontal.

Num objeto que existe na fase (um controlador sem sprite serve):

void Fase::onUpdate() {
setLayerPosition("Montanhas", scene().camera.x * 0.5f, 40.0f);
}
  • scene().camera.x é a posição da câmera: o canto esquerdo do que aparece na tela.
  • setLayerPosition("Montanhas", x, y) põe o canto da imagem da camada em (x, y) da room.
  • Multiplicar por 0.5f faz a camada andar metade do que a câmera anda. Na tela, ela parece passar mais devagar que o chão, como algo distante.

O número é o quanto a camada “gruda” na tela: 0 deixa a imagem presa na fase (sem parallax), e 1 deixa presa na tela (não sai do lugar). Quanto mais perto de 1, mais longe ela parece.

Várias camadas. Use um número para cada uma: as mais distantes, mais perto de 1.

Nuvens que andam sozinhas. Não precisa de código: no Inspetor da camada de Fundo, ponha uma Velocidade em X, como -0.2.