Beispiel #1
0
    private void variableVectorSet()
    {
        //Vélocité final après avoir charger l'arc
        float final_velocity = (starting_velocity * ((-1 * (Mathf.Exp(-0.5f * hold_time))) + 1));
        //Ramasse la composante x du vecteur de vitesse de Steve
        float bonusX = calcVelBoost().x;
        //Ramasse la composante y du vecteur de vitesse de Steve
        float bonusY      = calcVelBoost().y;
        float boolToFloat = 0;

        if (scriptArc.isRight)
        {
            boolToFloat = 1;
        }

        if (isGravityFunc)
        {
            //Paramètres pour fonction gravité
            variablesWFunction = new float[]
            {
                //Position en x de Steve
                transformFleche.position.x,
                //Position en y de Steve
                transformFleche.position.y,
                //Donne l'angle en degrées
                Mathf.Deg2Rad *scriptArc.getAngle(),
                //gravité de la planète
                gravity,
                //Vélocité final basée sur combien de temps le personnage charge son arc
                final_velocity,
                //lisse la rotation de la flèche en diminuant le module de la pente
                6f,
                //Constante pour accélérer les balles
                //N'importe pas pour la flèche
                1,
                //Bonus de vitesse donnée par Steve aux balles ou aux flèches
                bonusX,
                bonusY
            };
        }
        else
        {
            //Paramètres pour fonction sin(x)
            variablesWFunction = new float[]
            {
                //Amplitude de la fonction sin(x)
                1.8f,
                //Vélocité final de la fonction sin(x)
                final_velocity / 2.5f,
                //Position en x de Steve
                transformFleche.position.x,
                //Position en y de Steve
                transformFleche.position.y,
                //Donne l'angle en radians
                scriptArc.getAngle(),
                //Indique si Steve vise à droite ou à gauche
                boolToFloat
            };
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (auSolScr.getStatusSol())
        {
            animationSteve.SetBool("Au sol", true);
        }
        else
        {
            animationSteve.SetBool("Au sol", false);
        }


        angle = scriptSuivreSouris.getAngle();
        //Debug.Log(angle);
        if (angle < 50 && angle > -25)
        {
            if (Input.GetKey(KeyCode.D))
            {
                animationSteve.SetBool("D pressed", true);
            }
            if (Input.GetKey(KeyCode.A))
            {
                animationSteve.SetBool("A pressed", true);
            }
            if (!Input.GetKey(KeyCode.A) && !Input.GetKey(KeyCode.D))
            {
                animationSteve.SetBool("D pressed", false);
                animationSteve.SetBool("A pressed", false);
            }
        }
        else if (angle > 130 || (angle < 0 && angle < -155))
        {
            if (Input.GetKey(KeyCode.A))
            {
                animationSteve.SetBool("D pressed", true);
            }
            if (Input.GetKey(KeyCode.D))
            {
                animationSteve.SetBool("A pressed", true);
            }
            if (!Input.GetKey(KeyCode.A) && !Input.GetKey(KeyCode.D))
            {
                animationSteve.SetBool("D pressed", false);
                animationSteve.SetBool("A pressed", false);
            }
        }
    }