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)); }
public override void DeActive() { base.DeActive(); //TODO 更新コンテナから自分を削除 BezierStage.DeleteRoute(bezierIndex); childRightStop.DeActive(); childLeftStop.DeActive(); }
public void CheckJumpMove() { BezierStage.SetBezierposition(entity); if (lineIndex == -1) { route = new List <Vector2>(); } }
public void CreateStage(int stageNo) { EntityManager.Clear(); TaskManager.CloseAllTask(); BezierStage.InitializeStage(stageNo); entityCreator.CreateEntitys(stageNo); CreateStageLayer(stageNo); CreateHints(stageNo); }
public override void Active() { base.Active(); //TODO 更新コンテナに自分を入れる BezierStage.SetBezierposition(entity); route = BezierStage.GetNowRoute(lineIndex, bezierPoint); direction = (C_Switch3)entity.GetNormalComponent("C_Switch3"); InitializeCursor(); }
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()); } }
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)); }
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); }
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; }
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]); } }
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); } }
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)); }
public void ToNext() { bezierPoint += 2; route = BezierStage.GetNowRoute(lineIndex, bezierPoint); cursor = 0; }
public void ToBefore() { bezierPoint -= 2; route = BezierStage.GetNowRoute(lineIndex, bezierPoint); cursor = route.Count - 1; }
public bool IsEnd() { return(BezierStage.IsRouteEnd() || route.Count == 0); }