Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Fundo Gerado Aleatoriamente. | Melhore o Jogo Flappy Bird
Jogo de Luta no Unity

book
Fundo Gerado Aleatoriamente.

Câmera Segue o Jogador:

A classe CameraFollow faz a câmera seguir o jogador ao longo do eixo x, mantendo as posições iniciais y e z da câmera.

Métodos:

Método Start:

csharp
private void Start()
{
initialPosition = transform.position;
}

Propósito: Inicializa a variável initialPosition com a posição inicial da câmera quando o jogo começa.

Método LateUpdate:

csharp
private void LateUpdate()
{
initialPosition.x = player.transform.position.x;
transform.position = initialPosition;
}

Propósito: Atualiza a posição da câmera para seguir 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 a initialPosition atualizada, garantindo que ela siga o jogador ao longo do eixo x enquanto mantém as posições originais 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 reposicionará quando o jogador sair de seus limites, dando a ilusão de um fundo infinito.

Métodos:

Método Start:

csharp
private void Start()
{
width = GetComponent<BoxCollider2D>().bounds.size.x;
}

Propósito: 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 colisor, que é então armazenada na variável width para uso posterior.

Método OnTriggerExit2D:

csharp
private void OnTriggerExit2D(Collider2D collision)
{
if(collision.tag == "Player")
{
var position = transform.position;
position.x += width * 2f;
transform.position = position;
}
}

Propósito: Reposiciona o elemento de fundo quando o jogador sai de seus limites, criando a ilusão de um fundo de rolagem infinito.

Como Funciona: Quando o jogador sai do colisor de gatilho do elemento de fundo (OnTriggerExit2D(Collider2D collision)), verifica se o colisor pertence ao jogador (if(collision.tag == "Player")). Ajusta a posição do elemento de fundo para rolar suavemente deslocando-o para a direita por duas vezes sua largura (position.x += width * 2f;). Este ajuste garante que o elemento de fundo reapareça suavemente após seu elemento emparelhado rolar para fora de vista.

Após calcular a nova posição, o script atualiza a posição do elemento de fundo (transform.position = position;). Este 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 começa;

  • Reposicionamento: Quando o jogador sai dos limites do elemento de fundo, a posição do elemento é deslocada para a direita por duas vezes sua largura, criando um efeito de loop contínuo.

Esta configuração dá a ilusão de um fundo parallax infinito, reposicionando repetidamente os elementos de fundo à medida que o jogador se move, garantindo uma experiência visual suave e contínua.

question mark

O que acontece com a posição do objeto quando o jogador sai de seu colisor de gatilho?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 5. Capítulo 2

Pergunte à IA

expand
ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt