Ir al contenido
Descargar

Fondo con parallax

Quieres montañas al fondo que se muevan más lento que el suelo cuando la cámara se mueve. Ese efecto se llama parallax.

  1. Importa la imagen de las montañas como sprite.
  2. En el panel Camadas, crea una capa de Fundo (fondo) llamada Montanhas y arrástrala debajo de las demás (solo el cielo queda detrás de ella).
  3. En el Inspector de la capa, elige el Sprite y marca Repetir H, para que la imagen se repita en horizontal.

En un objeto que existe en el nivel (un controlador sin sprite sirve):

void Fase::onUpdate() {
setLayerPosition("Montanhas", scene().camera.x * 0.5f, 40.0f);
}
  • scene().camera.x es la posición de la cámara: el borde izquierdo de lo que aparece en pantalla.
  • setLayerPosition("Montanhas", x, y) pone la esquina de la imagen de la capa en (x, y) de la room.
  • Multiplicar por 0.5f hace que la capa se mueva la mitad de lo que se mueve la cámara. En pantalla, parece pasar más lento que el suelo, como algo lejano.

El número es cuánto se “pega” la capa a la pantalla: 0 deja la imagen fija al nivel (sin parallax), y 1 la deja fija a la pantalla (no se mueve). Cuanto más cerca de 1, más lejos parece.

Varias capas. Usa un número para cada una: las más lejanas, más cerca de 1.

Nubes que se mueven solas. No hace falta código: en el Inspector de la capa de Fundo, pon una Velocidade (velocidad) en X, como -0.2.