Exemple #1
0
    void andaCriature4()
    {
        if (criature == null)
        {
            criature = GetComponent <umCriature> ();
        }

        if (
            (Time.time - H.tempoDoUltimoUsoDeItem < H.intervaloParaUsarItem
             ||
             temGolpeEmRecarga(criature.X))
            &&
            !hudRecarga
            )
        {
            hudRecarga    = Camera.main.gameObject.AddComponent <HUDRecarga>();
            hudRecarga.H1 = H;
        }


        if (Input.GetButtonDown("paraCriature") && heroi.emLuta == false)
        {
            alternancia a = GetComponent <alternancia>();
            a.retornaAoHeroi();
        }


        criatureVerificaTrocaGolpe(criature.X);

        criatureScroll();


        //bool grounded = noChao(.distanciaFundamentadora );

        // Forward vector relative to the camera along the x-z plane
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");

        int temMedo = statusTemporarioBase.contemStatus(tipoStatus.amedrontado, criature.X);

        if (temMedo > -1)
        {
            Vector2 embaralhamento = embaralhaDeMedo(criature.X, temMedo, h, v);
            h = embaralhamento.x;
            v = embaralhamento.y;
        }

        Vector3 forward = direcaoInduzida(h, v);

        forward.y = 0;
        forward   = forward.normalized;

        // Right vector relative to the camera
        // Always orthogonal to the forward vector
        Vector3 right = new Vector3(forward.z, 0, -forward.x);


        Vector3 direcaoAlvo = (h * right + v * forward);
        float   targetSpeed = Mathf.Min(direcaoAlvo.magnitude, 1.0f);

        targetSpeed *= criature.X.velocidadeAndando;
        if (Input.GetButtonDown("Jump") && noChao(criature.X.distanciaFundamentadora))
        {
            ultimoYFundamentado = transform.position.y;
            pulo = true;
            controle.Move(Vector3.up * (criature.X.distanciaFundamentadora + 0.05f));
        }

        if (noChao(criature.X.distanciaFundamentadora))
        {
            pulo = false;
            if (Input.GetButtonDown("acao")
                ||
                Input.GetButtonDown("acaoAlt")
                )
            {
                Criature daki = criature.X;
                if (daki.Golpes[daki.golpeEscolhido].CustoPE <= daki.cAtributos[1].Corrente)
                {
                    aplicaGolpe(daki);
                }
                else
                {
                    usaItemEmLuta.mensagemDuranteALuta(bancoDeTextos.falacoes[heroi.lingua]["encontros"][4]);
                }
            }
            maisUmAtualizaSuavemente(v, h, criature.X, direcaoAlvo);

            direcaoMovimento = direcaoMovimento * 3 * targetSpeed + Vector3.down * criature.X.gravidade;
            //	+ criature.X.apliqueGravidade(Vector3.zero, direcaoMovimento );
            if (statusTemporarioBase.contemStatus(tipoStatus.paralisado, criature.X) > -1)
            {
                direcaoMovimento /= 10;
            }
            controle.Move((direcaoMovimento) * Time.deltaTime);
        }
        else
        {
            if (statusTemporarioBase.contemStatus(tipoStatus.paralisado, criature.X) > -1)
            {
                direcaoAlvo /= 10;
            }
            verificaPulo(direcaoAlvo, criature.X);
        }
        if (noChao(criature.X.distanciaFundamentadora))
        {
            if (Mathf.Abs(v) > 0.3f || Mathf.Abs(h) > 0.3f)
            {
                transform.rotation = Quaternion.LookRotation(new Vector3(direcaoMovimento.x, 0, direcaoMovimento.z));
            }
        }
        else
        {
            Vector3 xzMove = direcaoMovimento * Time.deltaTime;
            xzMove.y = 0;
            if (xzMove.sqrMagnitude > 0.001f)
            {
                transform.rotation = Quaternion.LookRotation(xzMove);
            }
        }

        animator.SetBool("noChao", noChao(criature.X.distanciaFundamentadora));
        animator.SetBool("pulo", pulo);
        animator.SetFloat("velocidade", Mathf.Abs(v) + Mathf.Abs(h));
    }
Exemple #2
0
    void andaCriature4()
    {
        if(criature == null)
            criature = GetComponent<umCriature> ();

        if(
            (Time.time - H.tempoDoUltimoUsoDeItem<H.intervaloParaUsarItem
            ||
            temGolpeEmRecarga(criature.X))
            &&
            !hudRecarga
            )
        {
            hudRecarga = Camera.main.gameObject.AddComponent<HUDRecarga>();
            hudRecarga.H1 = H;
        }

        if(Input.GetButtonDown("paraCriature")&&heroi.emLuta==false)
        {
            alternancia a = GetComponent<alternancia>();
            a.retornaAoHeroi();
        }

        criatureVerificaTrocaGolpe(criature.X);

        criatureScroll();

        //bool grounded = noChao(.distanciaFundamentadora );

        // Forward vector relative to the camera along the x-z plane
        float h = Input.GetAxis ("Horizontal");
        float v = Input.GetAxis ("Vertical");

        int temMedo = statusTemporarioBase.contemStatus (tipoStatus.amedrontado,criature.X);
        if(temMedo >-1)
        {
            Vector2 embaralhamento = embaralhaDeMedo(criature.X,temMedo,h,v);
            h = embaralhamento.x;
            v = embaralhamento.y;
        }

        Vector3 forward= direcaoInduzida(h,v);

        forward.y = 0;
        forward = forward.normalized;

        // Right vector relative to the camera
        // Always orthogonal to the forward vector
        Vector3 right= new Vector3(forward.z, 0, -forward.x);

        Vector3 direcaoAlvo = (h * right + v * forward);
        float targetSpeed= Mathf.Min(direcaoAlvo.magnitude, 1.0f);
        targetSpeed *= criature.X.velocidadeAndando;
        if(Input.GetButtonDown("Jump") && noChao(criature.X.distanciaFundamentadora ))
        {
            ultimoYFundamentado = transform.position.y;
            pulo = true;
            controle.Move(Vector3.up*(criature.X.distanciaFundamentadora+0.05f ));

        }

        if (noChao (criature.X.distanciaFundamentadora))
        {
            pulo = false;
            if (Input.GetButtonDown ("acao")
                ||
                Input.GetButtonDown ("acaoAlt")
                ) {

                Criature daki = criature.X;
                if(daki.Golpes[daki.golpeEscolhido].CustoPE<=daki.cAtributos[1].Corrente){
                    aplicaGolpe(daki);
                }else
                {
                    usaItemEmLuta. mensagemDuranteALuta( bancoDeTextos.falacoes[heroi.lingua]["encontros"][4]);
                }
            }
            maisUmAtualizaSuavemente(v,h,criature.X,direcaoAlvo);

            direcaoMovimento = direcaoMovimento * 3*targetSpeed+ Vector3.down * criature.X.gravidade;
            //	+ criature.X.apliqueGravidade(Vector3.zero, direcaoMovimento );
            if(statusTemporarioBase.contemStatus(tipoStatus.paralisado,criature.X)>-1)
                direcaoMovimento/=10;
            controle.Move ((direcaoMovimento) * Time.deltaTime);
        }else
        {
            if(statusTemporarioBase.contemStatus(tipoStatus.paralisado,criature.X)>-1)
                direcaoAlvo/=10;
            verificaPulo(direcaoAlvo,criature.X);
        }
        if (noChao(criature.X.distanciaFundamentadora))
        {
            if(Mathf.Abs(v)>0.3f||Mathf.Abs(h)>0.3f)
                transform.rotation = Quaternion.LookRotation(new Vector3(direcaoMovimento.x,0,direcaoMovimento.z));

        }
        else
        {
            Vector3 xzMove= direcaoMovimento*Time.deltaTime;
            xzMove.y = 0;
            if (xzMove.sqrMagnitude > 0.001f)
            {
                transform.rotation = Quaternion.LookRotation(xzMove);

            }
        }

        animator.SetBool("noChao",noChao(criature.X.distanciaFundamentadora));
        animator.SetBool("pulo",pulo);
        animator.SetFloat("velocidade",Mathf.Abs(v)+Mathf.Abs(h));
    }