Пример #1
0
    //-------------------------------------------------------------------------------
    ///
    //-------------------------------------------------------------------------------
    void MovePlayer(float fDeltatime)
    {
        if (m_GameObject.rigidbody != null)
        {
            Vector3 velocity = Vector3.zero;
            if (CApoilInput.MoveUp)
            {
                velocity += new Vector3(0, 1, 0);
                m_spriteSheet.SetAnimation(m_AnimVertical);
                m_spriteSheet.AnimationStart();
                m_eMoveModState = EMoveModState.e_MoveModState_marche;
            }
            if (CApoilInput.MoveDown)
            {
                velocity += new Vector3(0, -1, 0);
                m_spriteSheet.SetAnimation(m_AnimVertical);
                m_spriteSheet.AnimationStart();
                m_eMoveModState = EMoveModState.e_MoveModState_marche;
            }
            if (CApoilInput.MoveLeft)
            {
                velocity += new Vector3(-1, 0, 0);
                m_spriteSheet.SetAnimation(m_AnimHorizontal);
                m_spriteSheet.AnimationStart();
                flipLeft();
                m_eMoveModState = EMoveModState.e_MoveModState_marche;
            }
            if (CApoilInput.MoveRight)
            {
                velocity += new Vector3(1, 0, 0);
                m_spriteSheet.SetAnimation(m_AnimHorizontal);
                m_spriteSheet.AnimationStart();
                flipRight();
                m_eMoveModState = EMoveModState.e_MoveModState_marche;
            }
            if (!CApoilInput.MoveUp && !CApoilInput.MoveDown && !CApoilInput.MoveLeft && !CApoilInput.MoveRight)
            {
                m_spriteSheet.SetAnimation(m_AnimRepos);
                m_spriteSheet.AnimationStop();
                m_eMoveModState = EMoveModState.e_MoveModState_attente;
                m_GameObject.rigidbody.velocity = Vector3.zero;
            }

            velocity.Normalize();
            m_DirectionDeplacement = velocity;

            if (CApoilInput.WalkFast)
            {
                m_eMoveModState = EMoveModState.e_MoveModState_cours;
            }
            if (CApoilInput.WalkSlow)
            {
                m_eMoveModState = EMoveModState.e_MoveModState_discret;
            }

            CalculateSpeed();

            m_GameObject.transform.position += m_fSpeed * velocity * fDeltatime;
        }
        else
        {
            Debug.LogError("Pas de rigid body sur " + m_GameObject.name);
        }
    }