Пример #1
0
    void CreateState(eAnimationStateName name)
    {
        CharacterState state = null;

        switch (name)
        {
        case eAnimationStateName.Idle:
            state = new Idle_State((int)name);
            break;

        case eAnimationStateName.Run:
            state = new Run_State((int)name);
            break;

        case eAnimationStateName.Attack:
            state = new Attack_State((int)name);
            break;

        case eAnimationStateName.Jump:
            state = new Jump_State((int)name);
            break;

        case eAnimationStateName.Crouch:
            state = new Crouch_State((int)name);
            break;

        case eAnimationStateName.Crouch_Attack:
            state = new CrouchAttack_State((int)name);
            break;

        case eAnimationStateName.Jump_Attack:
            state = new JumpAttack_State((int)name);
            break;

        case eAnimationStateName.Hurt:
            state = new Hurt_State((int)name);
            break;

        case eAnimationStateName.Hide:
            state = new Hide_State((int)name);
            break;

        case eAnimationStateName.Die:
            state = new DIe_State((int)name);
            break;

        case eAnimationStateName.Rise:
            state = new Rise_State((int)name);
            break;

        default:
            break;
        }
        if (state == null)
        {
            return;
        }
        state.Init(_char);
        _aniDic.Add(name, state);
    }
        public Mediator_Player_Controls(Controls c_, H_Player p_)
        {
            p_avatar = p_;
            c_input = c_;
            shooter = Shoot_State.CHILL;
            jumper = Jump_State.ON_GROUND;
            AirTime = new Stopwatch();
            AirTime.Reset();
            AirTime.Stop();

            cur_structure = 0;
            structure_wheel.Add(Structure_Type_e.HEALING_POOL);
            structure_wheel.Add(Structure_Type_e.SNOW_FACTORY);
            structure_wheel.Add(Structure_Type_e.FORT);
            structure_wheel.Add(Structure_Type_e.SNOWMAN);
        }
        private void Handle_Jump_State()
        {
            if (c_input.State.jet_pack_mode)
                jumper = Jump_State.JET_PACK;

            switch (jumper)
            {
                case Jump_State.ON_GROUND:
                    if (c_input.State.jump)
                    {
                        AirTime.Start();
                        jumper = Jump_State.BOOST;
                    }
                    break;
                case Jump_State.BOOST:
                    //Boost Upwards (+Y)
                    if (AirTime.ElapsedMilliseconds <= 400 && c_input.State.jump)
                    {
                        p_avatar.accelerate(Globals.jump_vec);
                    }
                    else
                    {
                        jumper = Jump_State.FALLING_WITH_STYLE;
                        AirTime.Stop();
                        AirTime.Reset();
                    }
                    break;
                case Jump_State.FALLING_WITH_STYLE:
                    if (p_avatar.is_on_ground())
                        jumper = Jump_State.ON_GROUND;
                    break;
                case Jump_State.JET_PACK:
                    p_avatar.accelerate(Globals.jump_vec);
                    if (!c_input.State.jet_pack_mode)
                        jumper = Jump_State.FALLING_WITH_STYLE;
                    break;
                default:
                    if (p_avatar.is_on_ground())
                        jumper = Jump_State.ON_GROUND;
                    else
                        jumper = Jump_State.FALLING_WITH_STYLE;
                    break;
            }
            Debug.Print(""+jumper);
        }