/// <summary> /// Movimenta o Player para frente e para Faixa ativa /// </summary> private void Moviment() { if (gameManagement.CervejaAcumulada > 0) { if (gameManagement.EstaBebado()) { currentSpeed.x = Speed.x - ModVelocidadeCerveja * 2; currentSpeed.y = Speed.y - ModVelocidadeCerveja * 2; } else { currentSpeed.x = Speed.x + ModVelocidadeCerveja * gameManagement.CervejaAcumulada; currentSpeed.y = Speed.y + ModVelocidadeCerveja * gameManagement.CervejaAcumulada; } } else { currentSpeed.x = Speed.x; currentSpeed.y = Speed.y; } if (hitCavalete != null) { currentSpeed.x *= hitCavalete.ReducaVelocidade; currentSpeed.y *= hitCavalete.ReducaVelocidade; hitCavalete.TempoDeEfeito -= Time.deltaTime; if (hitCavalete.TempoDeEfeito <= 0) { hitCavalete = null; } } if (carroNoCaminho) { currentSpeed.x = 0; } //MOVIMENTO ENTRE FAIXAS - EIXO Z float distanceTime = (Time.time - startTime) * currentSpeed.y; Vector3 movment = transform.position; if (!PlayerInActiveSection()) { movment.z = Mathf.Lerp(transform.position.z, Pista.GetPosZFaixaAtual(), distanceTime); } //MOVIMENTO DE CORRIDA - EIXO X movment.x = Mathf.Lerp(transform.position.x, transform.position.x + 1, currentSpeed.x * Time.deltaTime); transform.position = movment; }
void Start() { rgb = GetComponent <Rigidbody> (); gameManagement = (GameManagement)FindObjectOfType(typeof(GameManagement)); groundCheck = GameObject.Find("GroundCheck").transform; // Guarda os Objetos que identificas as faixas Pista = (Pista)FindObjectOfType(typeof(Pista)); sombra = GameObject.FindGameObjectWithTag("SombraPlayer").transform; distanciaInicialPlayerSombra = Mathf.Abs(sombra.position.y - transform.position.y); scaleInicialSombra = sombra.localScale; // Posiciona na Faixa Inicial transform.position = new Vector3(transform.position.x, transform.position.y, Pista.GetPosZFaixaAtual()); posicaoSombra = transform.position.y - distanciaInicialPlayerSombra; currentSpeed = Speed; temporizadorSemControle = 0; posYInicial = transform.position.y; hitCavalete = null; }