2
respostas

[Dúvida] Time.tim* velocidade = ???

Não estou conseguindo compreender na minnha cabeça esse pedaço do codigo, pois se em um primeiro momento estava calculando velocidade = 1 e tempo = 1, como o passar do jogo estarei calculando velocidade = 1 e tempo = 100, como isso não esta influenciando negativamente algo?

2 respostas

Acho que entendi atravez do chat GPT, pelo q eu entendi minha logica faz sentido, porem o math.repeat calcula só ate o deslocamento alcançar o tamanho da imagem, apos isso, por mais que time.time fosse aumentar, o math.repeat o poem nos valores iniciais novamente como se fosse um simples deltatime

Oi Yan! Tudo bem?

No script do piso, estamos utilizando Time.time para calcular o deslocamento total do objeto desde o início do jogo. A fórmula que você mencionou, deslocamento = velocidade * Time.time, é usada para determinar o quanto o objeto deve se mover ao longo do tempo.

Vamos considerar um exemplo prático:

  1. No início do jogo:

    • velocidade = 1
    • Time.time = 1
    • deslocamento = 1 * 1 = 1
  2. Depois de 100 segundos:

    • velocidade = 1
    • Time.time = 100
    • deslocamento = 1 * 100 = 100

O deslocamento é a distância total que o objeto se moveu desde o início do jogo. O que pode estar causando confusão é como esse deslocamento é aplicado ao movimento do piso.

Para criar o efeito de looping contínuo, utilizamos a função Mathf.Repeat(). Essa função limita o deslocamento ao tamanho da imagem do piso, fazendo com que ele "volte" para a posição inicial quando ultrapassa seu próprio tamanho. A fórmula fica assim:

float deslocamento = Mathf.Repeat(this.velocidade * Time.time, this.tamanhoRealDaImagem);
this.transform.position = this.posicaoInicial + Vector3.left * deslocamento;

Aqui, Mathf.Repeat() garante que deslocamento nunca ultrapasse tamanhoRealDaImagem. Então, mesmo que Time.time continue aumentando, deslocamento será sempre um valor entre 0 e tamanhoRealDaImagem. Isso cria a ilusão de um piso infinito.

Espero que isso ajude a esclarecer como o tempo e a velocidade estão sendo usados no seu código.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.