public HumanAIScreen(Game1 game) { this._game = game; this._screen = ScreenType.Character; this.clientBounds = game.Window.ClientBounds; this._game.IsMouseVisible = false; arrowInputSystemID = game.RegisterSystem(new ArrowInputSystem(game, 1)); handInitSystemID = game.RegisterSystem(new HandInitSystem(game)); controllerInputSystemID = game.RegisterSystem(new ControllerInputSystem(game, 2)); selectsInputID1 = game.RegisterSystem(new SelectInputSystem(game, 1)); selectsInputID2 = game.RegisterSystem(new SelectInputSystem(game, 2)); mapRendererID = game.RegisterSystem(new MapRenderer(game)); handRenderID = game.RegisterSystem(new HandRenderer1(game)); screenInitSystemID = game.RegisterSystem(new ScreenInitializationSystem(game)); game.SetSystemCallOrder(new List<int> { screenInitSystemID, handInitSystemID, arrowInputSystemID, controllerInputSystemID, selectsInputID1, selectsInputID2, mapRendererID, handRenderID }); game.AddObject(new HandObject1(game, 1)); game.AddObject(new HandObject1(game, 2)); }
public MapScreen(Game1 game) { this._game = game; this._screen = ScreenType.Map; this.clientBounds = game.Window.ClientBounds; this._game.IsMouseVisible = true; arrowInputSystemID = game.RegisterSystem(new ArrowInputSystem(game, 1)); controllerInputSystemID = game.RegisterSystem(new ControllerInputSystem(game, 1)); mapRendererID = game.RegisterSystem(new MapRenderer(game)); mapInitSystemID = game.RegisterSystem(new ScreenInitializationSystem(game)); //modeRendererID = game.RegisterSystem(new ModeTextRenderer(game)); modeInputSystemID = game.RegisterSystem(new ModeInputSystem(game)); mapInputSystemID = game.RegisterSystem(new MouseInputsystem(game)); game.SetSystemCallOrder(new List<int> { mapInitSystemID, arrowInputSystemID, controllerInputSystemID, modeInputSystemID, mapRendererID, mapInputSystemID //modeRendererID }); game.AddObject(new TextObject1(game)); }
public StartScreen(Game1 game) { this._game = game; this._screen = ScreenType.Start; this.clientBounds = game.Window.ClientBounds; startScreenSystemID = game.RegisterSystem(new ScreenInputSystem(game, this._screen)); screenInitSystemID = game.RegisterSystem(new ScreenInitializationSystem(game)); screenRendererID = game.RegisterSystem(new MapRenderer(game)); game.SetSystemCallOrder(new List<int> { screenInitSystemID, startScreenSystemID, screenRendererID }); game.AddObject(new SceneObject(game, this._screen)); }
public override void Update(GameTime gametime) { anima.Update(gametime); ushort plTile = Game1.game.GetTile(collisionBox.Center.ToVector2()); oyxgenMetre = MathHelper.Clamp(oyxgenMetre, 0, 0.99f); if (!Keyboard.GetState().IsKeyDown(Keys.S)) { if (fallkeyPressed) { fallkeyPressed = false; } } switch (STATE) { case CHARA_STATE.MOVING: //isdebug = false; if (isgrounded) { if (Keyboard.GetState().IsKeyDown(Keys.A) || Keyboard.GetState().IsKeyDown(Keys.D)) { anima.SetAnimation("walk", true); } else { anima.SetAnimation("idle", false); } } else { anima.SetAnimation("jump", false); } oyxgenMetre += 0.01f; fallVel = gravity; if (isgrounded) { speed = speedOrigin; } if (Game1.IsSameLayer(plTile, "liquid")) { speed = speedOrigin; Game1.PlaySound(1); STATE = CHARA_STATE.SWIMMING; } if (Keyboard.GetState().IsKeyDown(Keys.D)) { renderer.spriteRotation = SpriteEffects.None; velocity.X = speed; } if (Keyboard.GetState().IsKeyDown(Keys.A)) { renderer.spriteRotation = SpriteEffects.FlipHorizontally; velocity.X = -speed; } if (isdebug) { if (Keyboard.GetState().IsKeyDown(Keys.S)) { velocity.Y = speed; } if (Keyboard.GetState().IsKeyDown(Keys.W)) { velocity.Y = -speed; } } else { if (Keyboard.GetState().IsKeyDown(Keys.Space)) { if (isgrounded == true) { anima.SetAnimation("walk", false); position.Y -= 3; if (Keyboard.GetState().IsKeyDown(Keys.A) || Keyboard.GetState().IsKeyDown(Keys.D)) { Game1.PlaySound(6); velocity.Y = -2.60f; } else { Game1.PlaySound(6); speed = speedOrigin / 1.4f; velocity.Y = -3.31f; } } } } break; case CHARA_STATE.SWIMMING: //isdebug = true; oyxgenMetre -= 0.0005f; velocity.Y *= velocityLimiter; fallVel = 0.04f; anima.SetAnimation("jump", false); if (Keyboard.GetState().IsKeyDown(Keys.W)) { if (Game1.IsSameLayer(plTile, "air")) { velocity.Y = -speed * 1.35f; } else { velocity.Y = -speed; } } if (Keyboard.GetState().IsKeyDown(Keys.LeftShift)) { speed = speedOrigin * 0.93f; oyxgenMetre -= 0.0007f; } else { speed = speedOrigin / 2.5f; } if (Game1.IsSameLayer(plTile, "air")) { Game1.PlaySound(10, collisionBox.Location.ToVector2()); STATE = CHARA_STATE.MOVING; } if (Keyboard.GetState().IsKeyDown(Keys.D)) { renderer.spriteRotation = SpriteEffects.None; velocity.X = speed; } if (Keyboard.GetState().IsKeyDown(Keys.A)) { renderer.spriteRotation = SpriteEffects.FlipHorizontally; velocity.X = -speed; } if (Keyboard.GetState().IsKeyDown(Keys.S)) { velocity.Y = speed; } if (oyxgenMetre <= 0.00) { Game1.game.ResetLevel(); } break; } o_block detectedSpike = IntersectBox <o_block>(new Vector2(0, 0), x => x.TYPEOFBLOCK == o_block.BLOCK_TYPE.SPIKES); if (detectedSpike != null) { position.Y = spawnpoint.Y - 1; position.X = spawnpoint.X; Game1.PlaySound(3); velocity = Vector2.Zero; Game1.game.ResetLevel(); } if (throwDel > 0) { throwDel -= Game1.deltaTime; } o_item item = CheckPointEnt <o_item>(centre); if (item != null) { if (item.catchDel > 0) { if (heldItem == o_item.ITEM_TY.None) { itemSpawn = item.spawnpoint; heldItem = item.itType; Game1.RemoveObject(item); } } } if (Game1.mousestate.LeftButton == ButtonState.Pressed) { if (heldItem != o_item.ITEM_TY.None) { o_item it = null; switch (heldItem) { case o_item.ITEM_TY.Bomb: it = Game1.AddObject <o_item>(centre + new Vector2(-10, -15), "bomb", Game1.textures["bomb"].Item2, Game1.textures["bomb"].Item1); break; case o_item.ITEM_TY.Throwing: it = Game1.AddObject <o_item>(centre + new Vector2(-10, -15), "Thing", Game1.textures["ball"].Item2, Game1.textures["ball"].Item1); break; } it.catchDel = 0.2f; if (it != null) { it.spawnpoint = itemSpawn; it.itType = heldItem; it.velocityLimiter = 0.97f; it.Throw(new Vector2(throwDir.X * throwMultiplier, throwDir.Y * throwMultiplier)); heldItem = o_item.ITEM_TY.None; } } } renderer.animNum = anima.currentFrameNumber; base.Update(gametime); }
public override void Update(GameTime gametime) { base.Update(gametime); anima.Update(gametime); renderer.animNum = anima.currentFrameNumber; o_platformControler contact = null; switch (TYPEOFBLOCK) { case BLOCK_TYPE.DOOR: if (flag == "0") { renderer.animNum = 1; if (IntersectBox <o_plcharacter>(new Vector2(0, 0)) != null) { Game1.game.IncrementLevel(); } } else { renderer.animNum = 0; } break; case BLOCK_TYPE.PORTAL: anima.SetAnimation("portal", true); contact = IntersectBox <o_platformControler>(new Vector2(0, 0)); if (contact != null) { if (doorDelay <= 0) { o_block f = Game1.FindCharacter <o_block>(flag); contact.position = f.position; f.velocity = Vector2.Zero; Game1.PlaySound(11); f.doorDelay = 1.2f; doorDelay = 1.2f; } } else { if (doorDelay > 0) { doorDelay -= Game1.deltaTime; } } if (doorDelay <= 0) { renderer.colour = new Color(1, 1, 1, 1f); } else { renderer.colour = new Color(1, 1, 1, 0.5f); } break; case BLOCK_TYPE.SWITCH_DOOR: if (flag == "0") { Game1.game.ChangeTile(position, 0); Game1.RemoveObject(this); } break; case BLOCK_TYPE.BOMBER: if (bomb_timer <= 0) { if (bomb_ItemToFocusOn == null) { o_item it = Game1.AddObject <o_item>(position + new Vector2(0, 20), "bomb", Game1.textures["bomb"].Item2, Game1.textures["bomb"].Item1); if (it != null) { it.itType = o_item.ITEM_TY.Bomb; it.iscatchable = false; it.velocityLimiter = 0.97f; it.Throw(direction); it.bombTimer = 2.5f; it.collisionOffset = new Vector2(6, 0); it.collisionBox.Width = 12; bomb_ItemToFocusOn = it; it.parent = this; bomb_timer = max_bomb_timer; } } } else if (bomb_ItemToFocusOn == null) { bomb_timer -= Game1.deltaTime; } break; } }
public CreditsScreen(Game1 game) { this._game = game; this._screen = ScreenType.Character; this.clientBounds = game.Window.ClientBounds; this._game.IsMouseVisible = false; handInitSystemID = game.RegisterSystem(new HandInitSystem(game)); if (game.winner == 1) { arrowInputSystemID = game.RegisterSystem(new ArrowInputSystem(game, 1)); selectsInputID1 = game.RegisterSystem(new SelectInputSystem(game, 1)); } else if (game.winner == 2) { controllerInputSystemID = game.RegisterSystem(new ControllerInputSystem(game, 2)); selectsInputID2 = game.RegisterSystem(new SelectInputSystem(game, 2)); } else { selectsInputID1 = game.RegisterSystem(new SelectInputSystem(game, 1)); selectsInputID2 = game.RegisterSystem(new SelectInputSystem(game, 2)); } mapRendererID = game.RegisterSystem(new MapRenderer(game)); handRenderID = game.RegisterSystem(new HandRenderer1(game)); screenInitSystemID = game.RegisterSystem(new ScreenInitializationSystem(game)); switchSystemID = game.RegisterSystem(new SwitchScreenSystem(game)); if (game.winner == 1) { game.SetSystemCallOrder(new List<int> { screenInitSystemID, handInitSystemID, arrowInputSystemID, selectsInputID1, mapRendererID, handRenderID, switchSystemID }); } else if (game.winner == 2) { game.SetSystemCallOrder(new List<int> { screenInitSystemID, handInitSystemID, controllerInputSystemID, selectsInputID2, mapRendererID, handRenderID, switchSystemID }); } else { game.SetSystemCallOrder(new List<int> { screenInitSystemID, handInitSystemID, arrowInputSystemID, controllerInputSystemID, selectsInputID1, selectsInputID2, mapRendererID, handRenderID, switchSystemID }); } game.AddObject(new HandObject2(game, 1)); game.AddObject(new HandObject2(game, 2)); }
public GameScreen(Game1 game, SpriteType player1, SpriteType player2) { game.IsMouseVisible = true; this.envFactory = new EnvironmentFactory(game); this.clientBounds = game.Window.ClientBounds; mapInitSystemID = game.RegisterSystem(new ScreenInitializationSystem(game)); spriteInitSystemID1 = game.RegisterSystem(new SpriteInitializationSystem(game, 1)); spriteInitSystemID2 = game.RegisterSystem(new SpriteInitializationSystem(game, 2)); songInitSystemID = game.RegisterSystem(new SongInitializer(game)); if (game.playe2 == PlayerType.Human) { controllerInputSystemID = game.RegisterSystem(new ControllerInputSystem(game, 2)); //arrowInputSystemID = game.RegisterSystem(new ArrowInputSystem(game, 2)); inputSystemID2 = game.RegisterSystem(new InputSystem(game, 2)); } if (game.playe1 == PlayerType.Human) { arrowInputSystemID = game.RegisterSystem(new ArrowInputSystem(game, 1)); //controllerInputSystemID = game.RegisterSystem(new ControllerInputSystem(game, 1)); inputSystemID1 = game.RegisterSystem(new InputSystem(game, 1)); } animationSystemID1 = game.RegisterSystem(new AnimationSystem(game, 1)); animationSystemID2 = game.RegisterSystem(new AnimationSystem(game, 2)); movementSystemID1 = game.RegisterSystem(new MovementSystem(game, 1)); movementSystemID2 = game.RegisterSystem(new MovementSystem(game, 2)); actionSystemID = game.RegisterSystem(new ActionSystem(game)); physicsSystemID = game.RegisterSystem(new PhysicsSystem(game)); boundsSystemID = game.RegisterSystem(new BoundsSystem(game)); meshRendererID = game.RegisterSystem(new LinebatchMeshRenderSystem(game)); collisionRendererID = game.RegisterSystem(new CollisionRenderSystem(game)); mapRendererID = game.RegisterSystem(new MapRenderer(game)); spriteRendererID = game.RegisterSystem(new SpriteRenderer(game)); uiRendererID = game.RegisterSystem(new UIRenderer(game)); transformResolverID = game.RegisterSystem(new PhysicsTransformResolverSystem(game)); lifetimeSystemID = game.RegisterSystem(new LifetimeSystem(game)); int aStarPathRendererID = game.RegisterSystem(new AStarPathRenderer(game)); int aStarRendererID = game.RegisterSystem(new AStarPathfindingRenderer(game)); int aiSystemID = game.RegisterSystem(new AISystem(game)); int timerRendererID = game.RegisterSystem(new TimerRenderSystem(game)); int timerSystemID = game.RegisterSystem(new TimerSystem(game)); songSystemID = game.RegisterSystem(new MusicSystem(game)); //services int collisionSystemID = game.RegisterSystem(new SATCollisionSystem(game, "Collision")); int aStarServiceID = game.RegisterSystem(new AStarPathfindingSystem(game, "Pathfinding", 50)); if (game.playe1 == PlayerType.Human && game.playe2 == PlayerType.Human) { game.SetSystemCallOrder(new List<int> { this.mapInitSystemID, this.spriteInitSystemID1, this.spriteInitSystemID2, this.songInitSystemID, this.arrowInputSystemID, this.controllerInputSystemID, aiSystemID, this.inputSystemID1, this.inputSystemID2, this.animationSystemID1, this.animationSystemID2, this.movementSystemID1, this.movementSystemID2, this.actionSystemID, this.physicsSystemID, this.transformResolverID, this.boundsSystemID, this.lifetimeSystemID, //this.physicsSystemID, this.meshRendererID, this.mapRendererID, this.collisionRendererID, this.spriteRendererID, this.uiRendererID, aStarRendererID, aStarPathRendererID, songSystemID }); } else if (game.playe1 == PlayerType.Human) { game.SetSystemCallOrder(new List<int> { this.mapInitSystemID, this.spriteInitSystemID1, this.spriteInitSystemID2, this.songInitSystemID, this.arrowInputSystemID, aiSystemID, this.inputSystemID1, this.animationSystemID1, this.animationSystemID2, this.movementSystemID1, this.movementSystemID2, this.actionSystemID, this.physicsSystemID, this.transformResolverID, this.boundsSystemID, this.lifetimeSystemID, //this.physicsSystemID, this.meshRendererID, this.mapRendererID, this.collisionRendererID, this.spriteRendererID, this.uiRendererID, aStarRendererID, aStarPathRendererID, songSystemID }); } else if (game.playe2 == PlayerType.Human) { game.SetSystemCallOrder(new List<int> { this.mapInitSystemID, this.spriteInitSystemID1, this.spriteInitSystemID2, this.songInitSystemID, this.controllerInputSystemID, aiSystemID, this.inputSystemID2, this.animationSystemID1, this.animationSystemID2, this.movementSystemID1, this.movementSystemID2, this.actionSystemID, this.physicsSystemID, this.transformResolverID, this.boundsSystemID, this.lifetimeSystemID, //this.physicsSystemID, this.meshRendererID, this.mapRendererID, this.collisionRendererID, this.spriteRendererID, this.uiRendererID, aStarRendererID, aStarPathRendererID, songSystemID }); } if (game.playe1 == PlayerType.Human) { if (player1 == SpriteType.Yoshi) { this.p1 = DynamicEntityFactory.BuildPlayerControlledEntity( game, 1, Color.Green, new Vector2(100, 0), 0.0f, new Vector2(1.0f, 1.0f), 400, 1000, SpriteType.Yoshi, new List<Shape> { //Shape.BuildRectangle(new Rectangle(-55, -60, 90, 60)), Shape.BuildRectangle(new Rectangle(-40, 0, 120, 60)), Shape.BuildRectangle(new Rectangle(25, 60, 40, 30)) }, MoveDefinitions.GetYoshiMoves() ); } else { this.p1 = DynamicEntityFactory.BuildPlayerControlledEntity( game, 1, Color.Green, new Vector2(100, 0), 0.0f, new Vector2(1.0f, 1.0f), 300, 1000, SpriteType.Kirby, new List<Shape> { Shape.BuildRectangle(new Rectangle(-60, -60, 110, 110)) }, MoveDefinitions.GetKirbyMoves() ); //kirby.AddComponent(new LifetimeComponent(kirby, 5000)); //kirby.SetParent(yoshi); } } else { if (player1 == SpriteType.Yoshi) { this.p1 = DynamicEntityFactory.BuildComputerControlledEntity( game, 1, Color.Green, new Vector2(800, 0), 0.0f, new Vector2(1.0f, 1.0f), 250, 500, SpriteType.Yoshi, new List<Shape> { Shape.BuildRectangle(new Rectangle(-40, 0, 120, 60)), Shape.BuildRectangle(new Rectangle(25, 60, 40, 30)) }, MoveDefinitions.GetYoshiMoves(), this.p2 ); } else { this.p1 = DynamicEntityFactory.BuildComputerControlledEntity( game, 1, Color.Green, new Vector2(800, 0), 0.0f, new Vector2(1.0f, 1.0f), 250, 500, SpriteType.Kirby, new List<Shape> { Shape.BuildRectangle(new Rectangle(-60, -60, 110, 110)) }, MoveDefinitions.GetKirbyMoves(), this.p2 ); } } game.AddObject(p1); if (game.playe1 == PlayerType.Human) { if (player2 == SpriteType.Yoshi) { this.p2 = DynamicEntityFactory.BuildPlayerControlledEntity( game, 2, Color.Pink, new Vector2(800, 0), 0.0f, new Vector2(1.0f, 1.0f), 400, 500, SpriteType.Yoshi, new List<Shape> { //Shape.BuildRectangle(new Rectangle(-55, -60, 90, 60)), Shape.BuildRectangle(new Rectangle(-40, 0, 120, 60)), Shape.BuildRectangle(new Rectangle(25, 60, 40, 30)) }, MoveDefinitions.GetYoshiMoves() ); } else { this.p2 = DynamicEntityFactory.BuildPlayerControlledEntity( game, 2, Color.Pink, new Vector2(500, 0), 0.0f, new Vector2(1.0f, 1.0f), 300, 10000, SpriteType.Kirby, new List<Shape> { Shape.BuildRectangle(new Rectangle(-60, -60, 110, 110)) }, MoveDefinitions.GetKirbyMoves() ); //this.p2 = DynamicEntityFactory.BuildComputerControlledEntity( // game, // 2, // Color.Pink, // new Vector2(800, 0), // 0.0f, // new Vector2(1.0f, 1.0f), // 250, // 500, // SpriteType.Kirby, // new List<Shape> // { // Shape.BuildRectangle(new Rectangle(-60, -60, 110, 110)) // }, // MoveDefinitions.GetYoshiMoves(), // this.p1 //); } } else { if (player2 == SpriteType.Yoshi) { this.p2 = DynamicEntityFactory.BuildComputerControlledEntity( game, 2, Color.Pink, new Vector2(800, 0), 0.0f, new Vector2(1.0f, 1.0f), 250, 500, SpriteType.Yoshi, new List<Shape> { Shape.BuildRectangle(new Rectangle(-40, 0, 120, 60)), Shape.BuildRectangle(new Rectangle(25, 60, 40, 30)) }, MoveDefinitions.GetYoshiMoves(), this.p1 ); } else { this.p2 = DynamicEntityFactory.BuildComputerControlledEntity( game, 2, Color.Pink, new Vector2(800, 0), 0.0f, new Vector2(1.0f, 1.0f), 250, 500, SpriteType.Kirby, new List<Shape> { Shape.BuildRectangle(new Rectangle(-60, -60, 110, 110)) }, MoveDefinitions.GetKirbyMoves(), this.p1 ); } } game.AddObject(p2); if (game.mapType == MapType.Basic) { game.AddObject(new TextObject2(game, MapType.Basic)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(403, 347), new Rectangle(0, -10, -378, -36), 2000.0f, Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(1173, 498), new Rectangle(0, -10, -380, -37), 2000.0f, Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(1165, 119), new Rectangle(0, -10, -530, -39), 2000.0f, Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(1050, 662), new Rectangle(0, -10, -927, -1), 2000.0f, Color.Red)); AStarPathfindingSystem pathfinding = (AStarPathfindingSystem)game.GetService("Pathfinding"); AStarNode node1 = new AStarNode(new Vector2(700, 50)); AStarNode node2 = new AStarNode(new Vector2(320, 270), true); AStarNode node3 = new AStarNode(new Vector2(820, 400)); AStarNode node4 = new AStarNode(new Vector2(700, 620), true); AStarNode node5 = new AStarNode(new Vector2(300, 620)); node1.AddNeighbor(node2); node2.AddNeighbor(node1); node2.AddNeighbor(node3); node3.AddNeighbor(node2); node3.AddNeighbor(node4); node4.AddNeighbor(node3); node4.AddNeighbor(node5); node5.AddNeighbor(node4); AStarGraph graph = new AStarGraph(game, new List<AStarNode> { node1, node2, node3, node4, node5 }); GameObject graphEntity = new GameObject(game); graphEntity.AddComponent(new AStarGraphComponent(graphEntity, graph)); game.AddObject(graphEntity); game.CurrentPathfindingGraph = graph; game.AddObject(new SongObject(game, MapType.Basic)); } else { game.AddObject(new TextObject2(game, MapType.Hyrule)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(303, 500), new Rectangle(0, -10, -10, -120), 2000.0f, Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(302, 505), new Rectangle(0, -10, -140, -10), 2000.0f, Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(815, 390), new Rectangle(0, -10, -516, -10), 2000.0f, Color.Red)); //game.AddObject(envFactory.BuildStaticRectangularObstacle( // new Vector2(704, 330), // new Rectangle(0, -10, -109, -10), // 2000.0f, // Color.Red)); //game.AddObject(envFactory.BuildStaticRectangularObstacle( // new Vector2(757, 223), // new Rectangle(0, -10, -107, -10), // 2000.0f, // Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(1064, 510), new Rectangle(0, -10, -250, -10), 2000.0f, Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(818, 510), new Rectangle(0, -10, -10, -130), 2000.0f, Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(174, 800), new Rectangle(0, -10, -10, -300), 2000.0f, Color.Red)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(1066, 810), new Rectangle(0, -10, -10, -306), 2000.0f, Color.Red)); AStarPathfindingSystem pathfinding = (AStarPathfindingSystem)game.GetService("Pathfinding"); AStarNode node1 = new AStarNode(new Vector2(230, 480), true); AStarNode node2 = new AStarNode(new Vector2(320, 350)); AStarNode node3 = new AStarNode(new Vector2(800, 350)); AStarNode node4 = new AStarNode(new Vector2(890, 480), true); node1.AddNeighbor(node2); node2.AddNeighbor(node1); node2.AddNeighbor(node3); node3.AddNeighbor(node2); node3.AddNeighbor(node4); node4.AddNeighbor(node3); AStarGraph graph = new AStarGraph(game, new List<AStarNode> { node1, node2, node3, node4 }); GameObject graphEntity = new GameObject(game); graphEntity.AddComponent(new AStarGraphComponent(graphEntity, graph)); game.AddObject(graphEntity); game.CurrentPathfindingGraph = graph; game.AddObject(new SongObject(game, MapType.Hyrule)); } //game.AddObject(envFactory.BuildStaticRectangularObstacle( // new Vector2(clientBounds.Width / 2, clientBounds.Height), // new Rectangle(-clientBounds.Width / 2, -10, clientBounds.Width, 20), // 2000.0f, // Color.Red)); //game.AddObject(envFactory.BuildStaticRectangularObstacle( // new Vector2(clientBounds.Width / 2, clientBounds.Height / 3 * 2), // new Rectangle(-clientBounds.Width / 2, -10, clientBounds.Width / 2, 20), // 2000.0f, // Color.Red)); //if (this._game.gameType == Types.GameTypes.Timed) //{ // game.AddObject(new TimeObject(game, new Vector2(0, 0), Color.Black)); //} game.Character1 = this.p1; game.Character2 = this.p2; }
public override void Update(GameTime gametime) { if (CheckPoint(new Vector2(0, 0))) { if (catchDel < 0) { Game1.RemoveObject(this); } } o_block block = null; block = IntersectBox <o_block>(new Vector2(0, 0)); if (block != null) { switch (block.TYPEOFBLOCK) { case o_block.BLOCK_TYPE.SWITCH: block.ButtonChange(); Game1.RemoveObject(this); break; case o_block.BLOCK_TYPE.SPIKES: if (itType != ITEM_TY.Bomb) { position = spawnpoint; velocity = Vector2.Zero; } else { bombTimer = 0; } break; } } if (itType == ITEM_TY.Bomb) { switch (fs) { case FUSE_STATE.THROWN: if (parent == null) { bombTimer -= (float)gametime.ElapsedGameTime.TotalSeconds; if (bombTimer <= 0) { isKenematic = false; collisionBox.Size = (new Vector2(20, 20) * 2f).ToPoint(); position = new Vector2(collisionBox.Location.X + 10, collisionBox.Location.Y - 10); ForceCollisionBoxUpdate(); bombTimer = 0.5f; fs = FUSE_STATE.BLOWING_UP; } } else { o_plcharacter play = IntersectBox <o_plcharacter>(new Vector2(0, 0)); if (play != null) { if (parent != null) { parent.bomb_ItemToFocusOn = null; } TPPlayer(ref play); return; } } break; case FUSE_STATE.BLOWING_UP: bombTimer -= (float)gametime.ElapsedGameTime.TotalSeconds; if (bombTimer >= 0) { Destroy(); } else { Game1.PlaySound(7, position); if (parent != null) { parent.bomb_ItemToFocusOn = null; } else { o_item it = Game1.AddObject <o_item>(spawnpoint, "bomb", Game1.textures["bomb"].Item2, Game1.textures["bomb"].Item1); if (it != null) { it.itType = o_item.ITEM_TY.Bomb; it.spawnpoint = spawnpoint; } } Game1.RemoveObject(this); } break; } } //timer -= (float)gametime.ElapsedGameTime.TotalSeconds; if (catchDel > 0) { catchDel -= (float)gametime.ElapsedGameTime.TotalSeconds; } o_plcharacter pl = CheckPointEnt <o_plcharacter>(new Vector2(10, 10)); if (pl != null) { if (catchDel <= 0 && iscatchable) { pl.heldItem = itType; pl.itemSpawn = spawnpoint; Game1.RemoveObject(this); } } /* * if (timer < 0) * Game1.RemoveObject(this); * * o_movableSolid item = IntersectBox<o_movableSolid>(new Vector2(0, 0)); * if (item != null) * { * item.velocity.X += velocity.X / 10; * velocity = Vector2.Zero; * } */ base.Update(gametime); }