Esempio n. 1
0
    //进入这个状态的时候
    public override void OnEnter(SimpleRole.enState lastState, object param)
    {
        SimpleRole.enBehitType behitType = (SimpleRole.enBehitType)param;
        if (lastState != SimpleRole.enState.behit) //之前不是被击状态则可以进入,但是要先清空
        {
            PlayBehit(behitType);
        }
        else if (m_curBehitType.CompareTo(behitType) <= 0)//被击优先级比现在的高
        {
            PlayBehit(behitType);
        }

        //浮空中被击有一个小的浮空力
        if (m_parent.m_floatBehitStartSpeed > m_floatSpeed && behitType == SimpleRole.enBehitType.beiji && m_curBehitType == SimpleRole.enBehitType.fukong)
        {
            //下降状态要加回上升状态
            if (m_floatSpeed <= 0)
            {
                m_parent.Ani.Play(AniFxMgr.Ani_FuKong01, WrapMode.ClampForever, m_parent.m_fade);
            }

            //重设初速度
            m_floatSpeed       = m_parent.m_floatBehitStartSpeed;
            m_floatAccelerated = m_parent.m_floatBehitAccelerated;
        }
    }
Esempio n. 2
0
    void PlayBehit(SimpleRole.enBehitType behitType)
    {
        if (behitType == SimpleRole.enBehitType.beiji)
        {
            m_parent.Ani.Play(m_behitToggle ? AniFxMgr.Ani_BeiJi01 : AniFxMgr.Ani_BeiJi02, WrapMode.ClampForever, m_parent.m_fade);

            m_behitToggle  = !m_behitToggle;
            m_behitEndTime = Time.time + m_parent.m_behitDuration;
        }
        else if (behitType == SimpleRole.enBehitType.fukong)
        {
            m_parent.Ani.Play(AniFxMgr.Ani_FuKong01, WrapMode.ClampForever, m_parent.m_fade);
            m_floatSpeed       = m_parent.m_floatStartSpeed;
            m_floatAccelerated = m_parent.m_floatAcceleratedUp;
        }
        else if (behitType == SimpleRole.enBehitType.daodi)
        {
            m_parent.Ani.Play(AniFxMgr.Ani_DaoDi, WrapMode.ClampForever, m_parent.m_fade);
            m_groundEndTime = Time.time + m_parent.m_groundDuration;
        }
        else if (behitType == SimpleRole.enBehitType.qishen)
        {
            m_parent.Ani.Play(AniFxMgr.Ani_QiShen, WrapMode.ClampForever, m_parent.m_fade);
        }
        else if (behitType == SimpleRole.enBehitType.jifei)
        {
            m_parent.Ani.Play(AniFxMgr.Ani_JiFei, WrapMode.Loop, m_parent.m_fade);
            m_flySpeed       = m_parent.m_flyStartSpeed;
            m_flyAccelerated = m_parent.m_flyAcceleratedUp;
        }

        m_curBehitType = behitType;
    }