Example #1
0
        protected override void update()
        {
            InputManager  inputManager  = new InputManager();
            ActionManager actionManager = new ActionManager(objectManager);

            objectManager.printObject(stageWidth);

            while (true)
            {
                var player    = objectManager.getPlayerObject();
                var direction = inputManager.getInputKey(stageWidth);
                var nextObj   = objectManager.getNextObject(direction);


                if (nextObj.objectType == GameObject.ObjectType.WALL)
                {
                    objectManager.printObject(stageWidth);
                    continue;
                }

                if (nextObj.objectType == GameObject.ObjectType.NIMOTUONGOAL)
                {
                    objectManager.printObject(stageWidth);
                    continue;
                }

                if (nextObj.objectType == GameObject.ObjectType.GOAL)
                {
                    actionManager.hitGoal(direction);
                    objectManager.printObject(stageWidth);
                    continue;
                }

                if (nextObj.objectType == GameObject.ObjectType.NIMOTU)
                {
                    actionManager.hitNimotu(direction);
                    objectManager.printObject(stageWidth);

                    CheckGoal();
                    continue;
                }

                if (player.type == CharManager.getPlayerChar())
                {
                    player.changeType(CharManager.getFloorChar(), GameObject.ObjectType.FLOOR);
                }
                else
                {
                    player.changeType(CharManager.getGoalChar(), GameObject.ObjectType.GOAL);
                }

                nextObj.changeType(CharManager.getPlayerChar(), GameObject.ObjectType.PLAYER);
                objectManager.printObject(stageWidth);
            }
        }
Example #2
0
        public void hitNimotu(int direction)
        {
            /*  まずは必要なオブジェクトを取得します */
            var player         = objectManager.getPlayerObject();
            var nextObj        = objectManager.getNextObject(direction);
            var morenextObject = objectManager.getMoreNectObject(direction);

            //荷物の移動先が荷物だったら動かせないので処理はしません
            if (morenextObject.objectType == GameObject.ObjectType.NIMOTU)
            {
                return;
            }
            //荷物の移動先が荷物の乗ったゴールだったら動かせないので処理はしません
            if (morenextObject.objectType == GameObject.ObjectType.NIMOTUONGOAL)
            {
                return;
            }

            /*
             * 荷物の移動先がゴールだったら
             *・ゴールに荷物を乗せて
             *・もともと荷物の場所にプレイヤーが移動して
             *・プレイヤーのいた場所を床にします。
             */
            if (morenextObject.objectType == GameObject.ObjectType.GOAL)
            {
                morenextObject.changeType(CharManager.getNimotuOnGoalChar(), GameObject.ObjectType.NIMOTUONGOAL);
                nextObj.changeType(CharManager.getPlayerChar(), GameObject.ObjectType.PLAYER);
                player.changeType(CharManager.getFloorChar(), GameObject.ObjectType.FLOOR);
                return;
            }
            //最終的に荷物の移動先が壁でなければ
            if (morenextObject.objectType != GameObject.ObjectType.WALL)
            {
                /*
                 *・荷物の移動先に荷物を移動して
                 *・荷物の場所にプレイヤーが移動して
                 *・プレイヤーの場所が床になります
                 */
                morenextObject.changeType(CharManager.getNimotuChar(), GameObject.ObjectType.NIMOTU);
                nextObj.changeType(CharManager.getPlayerChar(), GameObject.ObjectType.PLAYER);
                player.changeType(CharManager.getFloorChar(), GameObject.ObjectType.FLOOR);
            }
        }