Ejemplo n.º 1
0
        void Update()
        {
            Controlador.EntradaJogador entradaJogador =
                ctrl.ObterEntradaJogador();

            mov.direcao = entradaJogador.acao1 ? Vector3.forward : Vector3.zero;
        }
Ejemplo n.º 2
0
        void Update()
        {
            Controlador.EntradaJogador entradaJogador =
                ctrl.ObterEntradaJogador();

            // localizando variáveis
            float eixoH = entradaJogador.eixoH;
            float pos_x = tr.position.x;

            // Ativando pulo se o jogador apertou o botão de ação 1
            if (!emPulo && entradaJogador.acao1)
            {
                emPulo = true;
                StartCoroutine(Co_Pulo());
            }

            // direcao de movimento, não pode pudar se estiver durante o pulo
            if (!emPulo)
            {
                if (eixoH > 0)
                {
                    mov.direcao = Vector3.right;
                }
                else if (eixoH < 0)
                {
                    mov.direcao = Vector3.left;
                }
                else
                {
                    mov.direcao = Vector3.zero;
                }
            }

            // limitando dentro do limite da fase através da velocidade
            if (Mathf.Abs(pos_x) >= gerenBM.limX)
            {
                if (!emPulo)
                {
                    if (eixoH > 0 && pos_x < 0 || eixoH < 0 && pos_x > 0)
                    {
                        mov.velocidade = gerenBM.velocidadeMov;
                    }
                    else
                    {
                        mov.velocidade = 0;
                    }
                }
                else
                {
                    mov.velocidade = 0;
                }
            }
        }
Ejemplo n.º 3
0
        void Update()
        {
            Controlador.EntradaJogador entradaJogador =
                ctrl.ObterEntradaJogador();

            acao1 = entradaJogador.acao1;

            if (comCogumelo && acao1)
            {
                gerenCQ.PassarCogumelo();
            }
        }
        void Update()
        {
            Controlador.EntradaJogador entradaJogador =
                ctrl.ObterEntradaJogador();

            float eixoH = entradaJogador.eixoH;
            float eixoV = entradaJogador.eixoV;
            bool  acao1 = entradaJogador.acao1;

            if (acao1)
            {
                pontos += gerenFH.CalcPonto(ref temposUtilizados);
            }
        }
        void Update()
        {
            Controlador.EntradaJogador entradaJogador =
                ctrl.ObterEntradaJogador();

            // localizando variáveis
            float dt            = Time.deltaTime;
            float aceleracao    = gerenPE.aceleracao;
            float desaceleracao = gerenPE.desaceleracao;
            float lim           = gerenPE.limiteArena;

            float pos_x = tr.position.x;
            float pos_z = tr.position.z;

            float eixoH = entradaJogador.eixoH;
            float eixoV = entradaJogador.eixoV;
            bool  acao1 = entradaJogador.acao1;

            // controlando inércia
            // -> aceleração
            inerciaX = Mathf.Clamp(inerciaX + eixoH * aceleracao * dt, -1, 1);
            inerciaZ = Mathf.Clamp(inerciaZ + eixoV * aceleracao * dt, -1, 1);

            // -> desaceleração
            {
                inerciaX = Mathf.Clamp(
                    inerciaX - desaceleracao * dt * (inerciaX < 0 ? -1 : 1),
                    inerciaX < 0 ? -1 : 0,
                    inerciaX < 0 ?  0 : 1
                    );

                inerciaZ = Mathf.Clamp(
                    inerciaZ - desaceleracao * dt * (inerciaZ < 0 ? -1 : 1),
                    inerciaZ < 0 ? -1 : 0,
                    inerciaZ < 0 ?  0 : 1
                    );
            }


            // controlando direção do movimento
            inerciaNorm.x = inerciaX;
            inerciaNorm.y = inerciaZ;
            if (inerciaNorm.magnitude > 1)
            {
                inerciaNorm.Normalize();
            }

            mov.direcao.x = inerciaNorm.x;
            mov.direcao.z = inerciaNorm.y;

            // limitando dentro da arena pela direção do movimento
            if (pos_x >= lim && inerciaX > 0 || pos_x <= -lim && inerciaX < 0)
            {
                mov.direcao.x = 0;
                inerciaX      = 0;
            }
            if (pos_z >= lim && inerciaZ > 0 || pos_z <= -lim && inerciaZ < 0)
            {
                mov.direcao.z = 0;
                inerciaZ      = 0;
            }
        }