コード例 #1
0
        private void CreateSquirrel(Vector2 position)
        {
            Transform2D trans = new Transform2D();

            trans.Position = position;

            Entity child = Entity.CreateEntity("Squirrel", "Child", trans);

            child.RegisterComponent(new C_Switch3());
            child.RegisterComponent(new C_CharaState());
            child.RegisterComponent(new C_ChildState());
            C_BezierPoint bezier = new C_BezierPoint();

            child.RegisterComponent(bezier);
            BezierStage.AddBezierData(bezier);
            //child.RegisterComponent(new C_DrawDebugMessage(bezier));
            child.RegisterComponent(new C_EntityDeadCheck());
            child.RegisterComponent(new C_Energy("", 10, 90));

            C_DrawAnimetion drawComp = new C_DrawAnimetion(new Vector2(80, 60), 14);

            drawComp.AddAnim("Run", new AnimData(7, 7, 0.08f, "A_Squirrel_Run"));
            drawComp.AddAnim("Eat", new AnimData(1, 1, 1f, "A_Squirrel_Eat"));
            drawComp.AddAnim("Catch", new AnimData(1, 1, 1f, "A_Squirrel_Catch"));
            child.RegisterComponent(drawComp);
            drawComp.SetNowAnim("Run");

            child.RegisterComponent(new C_UpdateSquirrelState(gameDevice));
        }
コード例 #2
0
ファイル: C_IceRoute.cs プロジェクト: Shien007/Season
 public override void DeActive()
 {
     base.DeActive();
     //TODO 更新コンテナから自分を削除
     BezierStage.DeleteRoute(bezierIndex);
     childRightStop.DeActive();
     childLeftStop.DeActive();
 }
コード例 #3
0
 public void CheckJumpMove()
 {
     BezierStage.SetBezierposition(entity);
     if (lineIndex == -1)
     {
         route = new List <Vector2>();
     }
 }
コード例 #4
0
 public void CreateStage(int stageNo)
 {
     EntityManager.Clear();
     TaskManager.CloseAllTask();
     BezierStage.InitializeStage(stageNo);
     entityCreator.CreateEntitys(stageNo);
     CreateStageLayer(stageNo);
     CreateHints(stageNo);
 }
コード例 #5
0
        public override void Active()
        {
            base.Active();
            //TODO 更新コンテナに自分を入れる

            BezierStage.SetBezierposition(entity);
            route     = BezierStage.GetNowRoute(lineIndex, bezierPoint);
            direction = (C_Switch3)entity.GetNormalComponent("C_Switch3");
            InitializeCursor();
        }
コード例 #6
0
        public void InitializeStage(int stageNo)
        {
            //初期化ルート
            List <List <Vector2> > bezierPoints = BezierStage.InitializeStage(Parameter.StageNo);

            for (int i = 0; i < bezierPoints.Count; i++)
            {
                for (int j = 0; j < bezierPoints[i].Count; j++)
                {
                    CreatObjectFromData(eObjectType.BezierStage, bezierPoints[i][j], i);
                }
            }
            bezierManager.SetBezierPoints(bezierPoints);


            //初期化実体
            entitysList.Clear();
            CSVReader.Read("EntityPositionData_S" + stageNo);
            List <string[]> result = CSVReader.GetData();

            for (int i = 0; i < result.Count; i++)
            {
                Vector2     position = new Vector2(int.Parse(result[i][1]), int.Parse(result[i][2]));
                eObjectType type     = typeChange[result[i][0]];
                entitysList.Add(new Object(result[i][0], position, 50, type));
            }


            //初期化ヒント
            hintsList.Clear();
            CSVReader.Read("HintsData_S" + stageNo);
            result = CSVReader.GetData();

            for (int i = 0; i < result.Count; i++)
            {
                Hint    hint   = new Hint(new Vector2(int.Parse(result[i][1]), int.Parse(result[i][2])), Hint.NameToType(result[i][0]));
                Vector2 center = new Vector2(int.Parse(result[i][3]), int.Parse(result[i][4]));
                Vector2 size   = new Vector2(int.Parse(result[i][5]), int.Parse(result[i][6]));

                hint.SetLeft(center - size / 2);
                hint.SetRight(center + size / 2);
                hintsList.Add(new List <Object>());
                int lastOne = hintsList.Count - 1;
                hintsList[lastOne].Add(hint);
                hintsList[lastOne].Add(hint.GetLeftTop());
                hintsList[lastOne].Add(hint.GetRightBottom());
            }
        }
コード例 #7
0
        private void CreateWasteland(Vector2 position)
        {
            List <int> lb = BezierStage.GetLB(position);

            //実体生成
            Entity wasteland = Entity.CreateEntity("Wasteland", "Wasteland", new Transform2D());

            //位置設定
            C_BezierPoint bezier = new C_BezierPoint();

            //初期化毒沼
            C_UpdateWastelandState wastelandState = new C_UpdateWastelandState(lb);

            wasteland.RegisterComponent(wastelandState);
            wasteland.RegisterComponent(new C_DrawWasteland(gameDevice, wastelandState));
        }
コード例 #8
0
        public override void Active()
        {
            base.Active();
            //TODO 更新コンテナに自分を入れる

            //DamageAreaの設置
            startPosition = BezierStage.GetControllPointPosition(startPoint_LB[0], startPoint_LB[1] + 1);
            endPosition   = BezierStage.GetControllPointPosition(startPoint_LB[0], startPoint_LB[1] + 7);
            Vector2 damageAreaRY = BezierStage.GetControllPointPosition(startPoint_LB[0], startPoint_LB[1] + 4);

            Vector2 damageAreaSize = new Vector2(
                endPosition.X - startPosition.X,
                damageAreaRY.Y - startPosition.Y);

            damageArea = new C_Collider_PointInHintArea("WastelandDamage", startPosition + damageAreaSize / 2, damageAreaSize);
            damageArea.Active();
            TaskManager.AddTask(damageArea);

            //Route生成用エリアの設置
            Vector2 createRouteAreaLT = BezierStage.GetControllPointPosition(startPoint_LB[0], startPoint_LB[1] + 1);
            Vector2 createRouteAreaRB = BezierStage.GetControllPointPosition(startPoint_LB[0], startPoint_LB[1] + 7);

            createRouteAreaLT.Y -= 50;
            Vector2 createRouteAreaSize = createRouteAreaRB - createRouteAreaLT;

            createRouteArea = new C_Collider_Square("CanCreateRoute", createRouteAreaLT + createRouteAreaSize / 2, createRouteAreaSize);
            createRouteArea.Active();
            TaskManager.AddTask(createRouteArea);


            //ChildControll用エリア設置
            C_Collider_PointInHintArea childJump1 = new C_Collider_PointInHintArea("ChildJump", startPosition, Vector2.One * 60);
            C_Collider_PointInHintArea childJump2 = new C_Collider_PointInHintArea("ChildJump", endPosition, Vector2.One * 60);

            childJump1.Active();
            childJump2.Active();
            TaskManager.AddTask(childJump1);
            TaskManager.AddTask(childJump2);

            stopRight = new C_Collider_PointInHintArea("ChildStopR", startPosition, Vector2.One * 100);
            stopLeft  = new C_Collider_PointInHintArea("ChildStopL", endPosition, Vector2.One * 100);
            stopRight.Active();
            stopLeft.Active();
            TaskManager.AddTask(stopRight);
            TaskManager.AddTask(stopLeft);
        }
コード例 #9
0
ファイル: C_IceRoute.cs プロジェクト: Shien007/Season
        public C_IceRoute(Vector2 startPosition, Vector2 endPosition)
        {
            this.startPosition = startPosition;
            this.endPosition   = endPosition;

            List <Vector2> route = new List <Vector2>()
            {
                startPosition,
                (startPosition + endPosition) / 2,
                endPosition,
            };

            bezierIndex = BezierStage.AddRoute(route);

            aliveTimer    = new Timer(Parameter.IceRouteTime);
            aliveTimer.Dt = new Timer.timerDelegate(DeActive);

            canMoveRight = false;
            canMoveLeft  = false;
        }
コード例 #10
0
ファイル: BezierManager.cs プロジェクト: Shien007/Season
        public void CreatBezierCurves()
        {
            for (int i = 0; i < bezierPositions.Count; i++)
            {
                bezierPositions[i].Sort((x, y) => x.X.CompareTo(y.X));
            }

            bezierCurves.Clear();
            bezierCurves.Add(new List <List <Vector2> >());
            for (int i = 0; i < bezierPositions.Count; i++)
            {
                bezierCurves.Add(new List <List <Vector2> >());
                if (bezierPositions[i].Count < 3)
                {
                    continue;
                }
                if (bezierPositions[i].Count % 2 != 1)
                {
                    continue;
                }
                bezierCurves[i] = BezierStage.GetBezierCurve(bezierPositions[i]);
            }
        }
コード例 #11
0
        private void DebugInitialize()
        {
            //BezierLine描画
            DrawComponent com = new C_DrawBezier(BezierStage.GetControllPoints());

            com.Active();
            TaskManager.AddTask(com);

            //Wall描画
            com = new C_DrawBezier(BezierStage.GetBlockMapList());
            com.Active();
            TaskManager.AddTask(com);

            //ShaderTest用
            //CreatShaderTest();

            //StageCheck
            if (inputState.IsDown(Keys.W, Buttons.LeftShoulder))
            {
                Camera2D.ZoomIn();
            }
            if (inputState.IsDown(Keys.S, Buttons.RightShoulder))
            {
                Camera2D.ZoomOut();
            }


            //毒沼生成(機能改善中)
            if (stageNo == 1)
            {
                List <int> lb = new List <int>()
                {
                    4, 2
                };
                CreatWasteland(lb);
            }
        }
コード例 #12
0
        public void CreatPlayer()
        {
            //生成地を決める
            Transform2D trans = new Transform2D();

            trans.Position = new Vector2(500, 100);

            //実体生成
            Entity player = Entity.CreateEntity("Player", "Player", trans);

            //機能登録(順序注意 - 関連性ある)
            player.RegisterComponent(new C_Switch3());
            player.RegisterComponent(new C_CharaState());
            C_BezierPoint bezier = new C_BezierPoint();

            player.RegisterComponent(bezier);
            BezierStage.AddBezierData(bezier);
            player.RegisterComponent(new C_EntityDeadCheck());
            player.RegisterComponent(new C_PlayerState());
            player.RegisterComponent(new C_DrawRouteEffect());
            //player.RegisterComponent(new C_DrawLocus());
            player.RegisterComponent(new C_DrawDebugMessage(gameDevice, bezier));

            C_DrawAnimetion drawComp = new C_DrawAnimetion(Vector2.One * 256, 16);

            drawComp.AddAnim("Idle", new AnimData(1, 1, 1, "A_Player_Idle"));
            drawComp.AddAnim("Walk", new AnimData(4, 4, 0.12f, "A_Player_Walk"));
            drawComp.AddAnim("Jump", new AnimData(2, 3, 0.1f, "A_Player_Jump", false));
            drawComp.AddAnim("Run", new AnimData(13, 4, 0.05f, "A_Player_Run"));
            drawComp.AddAnim("Attack", new AnimData(1, 1, 1, "A_Player_Attack"));
            player.RegisterComponent(drawComp);
            drawComp.SetNowAnim("Idle");

            player.RegisterComponent(new C_Energy("Bar", 10, 270));
            player.RegisterComponent(new C_UpdatePlayerState(gameDevice));
        }
コード例 #13
0
 public void ToNext()
 {
     bezierPoint += 2;
     route        = BezierStage.GetNowRoute(lineIndex, bezierPoint);
     cursor       = 0;
 }
コード例 #14
0
 public void ToBefore()
 {
     bezierPoint -= 2;
     route        = BezierStage.GetNowRoute(lineIndex, bezierPoint);
     cursor       = route.Count - 1;
 }
コード例 #15
0
 public bool IsEnd()
 {
     return(BezierStage.IsRouteEnd() || route.Count == 0);
 }