Fundo Gerado Aleatoriamente.
Câmera Segue o Jogador:
A classe CameraFollow
faz com que a câmera siga o jogador ao longo do eixo x, mantendo as posições iniciais y e z da câmera.
Métodos:
Método Start:
private void Start()
{
initialPosition = transform.position;
}
Finalidade: Inicializa a variável initialPosition
com a posição inicial da câmera quando o jogo começa.
Método LateUpdate:
private void LateUpdate()
{
initialPosition.x = player.transform.position.x;
transform.position = initialPosition;
}
Finalidade: Atualiza a posição da câmera para acompanhar o movimento do jogador no eixo x.
Como Funciona: initialPosition.x = player.transform.position.x;
atualiza a coordenada x de initialPosition
para corresponder à coordenada x do jogador, e transform.position = initialPosition;
define a posição da câmera para o novo initialPosition
, garantindo que ela siga o jogador ao longo do eixo x, mantendo as posições originais de y e z.
Explicação do ParallaxBackground:
A classe ParallaxBackground
faz com que um elemento de fundo, como nuvens, se repita infinitamente para criar um efeito de paralaxe em um jogo 2D. O fundo se reposiciona quando o jogador sai dos seus limites, proporcionando a ilusão de um fundo infinito.
Métodos:
Método Start:
private void Start()
{
width = GetComponent<BoxCollider2D>().bounds.size.x;
}
Finalidade: Inicializa a variável width
com a largura do elemento de fundo.
Como Funciona:
GetComponent<BoxCollider2D>()
recupera o componente BoxCollider2D
anexado ao elemento de fundo, e .bounds.size.x
obtém a largura da caixa delimitadora do collider, que é então armazenada na variável width
para uso posterior.
Método OnTriggerExit2D:
private void OnTriggerExit2D(Collider2D collision)
{
if(collision.tag == "Player")
{
var position = transform.position;
position.x += width * 2f;
transform.position = position;
}
}
Finalidade: Reposiciona o elemento de fundo quando o jogador sai de seus limites, criando a ilusão de um fundo rolante infinito.
Como Funciona:
Quando o jogador sai do collider trigger do elemento de fundo (OnTriggerExit2D(Collider2D collision)
), verifica se o collider pertence ao jogador (if(collision.tag == "Player")
). Ajusta a posição do elemento de fundo para rolar de forma contínua, deslocando-o para a direita pelo dobro de sua largura (position.x += width * 2f;
).
Esse ajuste garante que o elemento de fundo reapareça suavemente após seu elemento pareado sair de cena.
Após calcular a nova posição, o script atualiza a posição do elemento de fundo (transform.position = position;
). Esse mecanismo permite que o fundo mantenha um efeito de rolagem contínua em sincronia com os movimentos do jogador dentro do ambiente do jogo.
Resumo:
- Inicialização: A largura do elemento de fundo é calculada e armazenada quando o jogo inicia;
- Reposicionamento: Quando o jogador sai dos limites do elemento de fundo, a posição do elemento é deslocada para a direita pelo dobro de sua largura, criando um efeito de looping contínuo.
Essa configuração cria a ilusão de um fundo parallax infinito ao reposicionar repetidamente os elementos de fundo conforme o jogador se move, garantindo uma experiência visual suave e contínua.
Obrigado pelo seu feedback!