示例#1
0
    /// <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;
    }
示例#2
0
    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;
    }