Beispiel #1
0
        public override void ApplyInput(GameInput input)
        {
            if (input.Jump)
            {
                // Owner.Revive();
                GameMgr.Instance.LastCheckPoint();
            }
            var anim = Animator.GetAnimator();

            var state = anim.GetCurrentAnimatorStateInfo(0);

            if (state.IsName("die") && state.length - state.normalizedTime < 0.1f)
            {
                // 动画时间外
                GameMgr.Instance.LineMgr.CanDraw = false;
                //if (input.Jump)
                //{
                // Owner.Revive();
                //    GameMgr.Instance.LastCheckPoint();
                //}
            }
        }
Beispiel #2
0
        public override void ApplyInput(GameInput input)
        {
            if (Owner == null || Owner.IsDead)
            {
                return;
            }

            if (!Owner.OnTheLine)
            {
                if (input.Left || input.Right)
                {
                    Owner.Run();
                    return;
                }
            }
            else
            {
                if (!Owner.Grounded && (input.Left || input.Right))
                {
                    Owner.Run();
                    return;
                }
            }

            if (input.Up && Owner.OnTheClimbAera)
            {
                // TODO 这里要从玩家坐标向玩家的朝向发射一个射线,如果发现与梯子距离小于设定值,
                // 那么按上则采取靠近梯子,当与梯子的距离足够近,并且,还是梯子中心的时候再转换成为爬梯子的状态

                Owner.Climb();
                return;
            }

            if (input.Jump)
            {
                Owner.Jump();
                return;
            }
        }
Beispiel #3
0
 public void ApplyInput(GameInput input)
 {
     if (!CanDraw)
     {
         return;
     }
     if (Input.GetMouseButtonDown(1))
     {
         DestoryLine();
     }
     // 如果是鼠标按下
     if (input.Mouse1Down)
     {
         SetStartPos();
     }
     else if (input.Mouse1Up)
     {
         SetEndPos();
     }
     else if (input.Mouse1Move)
     {
         MovePos();
     }
 }
Beispiel #4
0
        public override void ApplyInput(GameInput input)
        {
            if (Owner.OnTheLine)
            {
                return;
            }

            if (input.Left)
            {
                Owner.TurnRound(Dir.Left);
                Move();
            }
            else if (input.Right)
            {
                Owner.TurnRound(Dir.Right);
                Move();
            }

            // TODO 当玩家是X到达梯子中心点的时候,在切换状态
            if ((input.Up || input.Down) && Owner.OnTheClimbAera)
            {
                Owner.Climb();
            }
        }
Beispiel #5
0
 public void ApplyInput(GameInput input)
 {
     MyState.ApplyInput(input);
 }
Beispiel #6
0
        public void ApplyInput(GameInput input)
        {
            var state = States[(int)CurrentPlayerState];

            state.ApplyInput(input);
        }
Beispiel #7
0
        void Start()
        {
            if (PlayerObject == null)
            {
                PlayerObject = GameObject.Find("Faylisa");
                if (PlayerObject == null)
                {
                    PlayerObject = GameObject.Find("BlueHat");
                }
            }
            RecordingTime = true;
            IsPause       = false;
            InputMgr      = gameObject.AddComponent <GameInput>();
            PlayerLogic   = PlayerObject.AddMissingComponent <Player>();
            LineMgr       = gameObject.AddMissingComponent <LineMgr>();
            UiManager     = gameObject.AddMissingComponent <UIManager>();
            UiManager.OpenUI(0);

            Config = new GameConfig();
            Config.Load();

            // 查找开关
            var s = GameObject.Find("GameSwitch");

            if (s != null)
            {
                WorldSwith = s.GetComponent <GameSwitch>();
            }

            if (WorldSwith == null)
            {
                WorldSwith = new GameSwitch();
                WorldSwith.ForbidDrawLine      = false;
                WorldSwith.ForbidTimeOperation = false;
            }

            if (Camera.main.GetComponent <ProCamera2D>().CameraTargets.Count == 0)
            {
                Camera.main.GetComponent <ProCamera2D>().AddCameraTarget(PlayerObject.transform);
            }
            Camera.main.GetComponent <ProCamera2DTransitionsFX>().TransitionEnter();

            GameObject bgm = GameObject.Find("BGManager");

            if (bgm == null)
            {
                Instantiate(Resources.Load("prefabs/Utilities/BGManager"));
            }

            // 首先从gamedata中得到当前level的保存信息
            // 如果没有保存内容,那么就创建一个
            if (GameData.Instance != null)
            {
                SaveBlack data = GameData.Instance.GetLevelData(LevelName);
                if (data == null)
                {
                    GameData.Instance.AddNewLevel(LevelName, LevelName, PlayerLogic.Position);
                }
                else
                {
                    GameData.Instance.ChangeCurrentLevel(LevelName);

                    // 重置玩家坐标
                    PlayerLogic.SetRevivePoint(data.BornPos);
                    PlayerLogic.Position = data.BornPos;
                }
            }

            CreateLevelItem();

            PlayerLogic.OnPickUpAction += GameData.Instance.SaveCollectPickup;
        }
Beispiel #8
0
 public virtual void ApplyInput(GameInput input)
 {
 }