public override void Update(GameTime gameTime) { KeyboardState state = Keyboard.GetState(); GamePadState gamePadState1 = GamePad.GetState(PlayerIndex.One); if (state.IsKeyDown(Keys.B) || gamePadState1.IsButtonDown(Buttons.Back)) { this.Game.Exit(); } else if (state.GetPressedKeys().Length > 0 || gamePadState1.IsButtonDown(Buttons.Start)) { this._game.curScreen = ScreenType.Start; this._game.RemoveAllSystems(); this._game.RemoveAllObjects(); //GameScreen gameScreen = new GameScreen(this._game, SpriteType.Yoshi, SpriteType.Yoshi); //CharacterSelectScreen selectScreen = new CharacterSelectScreen(this._game); StartScreen startScreen = new StartScreen(this._game); this._game.LoadScene(); this._game.play1 = SpriteType.None; this._game.play2 = SpriteType.None; this._game.playe1 = PlayerType.None; this._game.playe2 = PlayerType.None; this._game.gameType = GameTypes.None; this._game.LivesOrTime = 0; this._game.winner = 0; this._game.mapType = MapType.None; } }
/// <summary> /// The main entry point for the application. /// </summary> static void Main(string[] args) { using (Game1 game = new Game1()) { //GameScreen gameScreen = new GameScreen(game, SpriteType.Yoshi, SpriteType.Kirby); StartScreen startScreen = new StartScreen(game); //CharacterSelectScreen selectScreen = new CharacterSelectScreen(game); //CreditsScreen creditScreen = new CreditsScreen(game); //EnvironmentFactory envFactory = new EnvironmentFactory(game); //Rectangle clientBounds = game.Window.ClientBounds; ////game.RegisterSystem(new PlayerInputSystem(game, 1)); ////game.RegisterSystem(new TimerSystem(game)); ////game.RegisterSystem(new TimerRenderSystem(game)); /* int spriteInitSystemID = game.RegisterSystem(new SpriteInitializationSystem(game, 1)); //int arrowInputSystemID = game.RegisterSystem(new ArrowInputSystem(game, 1)); int controllerInputSystemID = game.RegisterSystem(new ControllerInputSystem(game, 1)); int inputSystemID = game.RegisterSystem(new InputSystem(game, 1)); int AISystemID = game.RegisterSystem(new AISystem(game)); int animationSystemID = game.RegisterSystem(new AnimationSystem(game, 1)); int movementSystemID = game.RegisterSystem(new MovementSystem(game, 1)); int actionSystemID = game.RegisterSystem(new ActionSystem(game)); int physicsSystemID = game.RegisterSystem(new PhysicsSystem(game)); int boundsSystemID = game.RegisterSystem(new BoundsSystem(game)); int meshRendererID = game.RegisterSystem(new LinebatchMeshRenderSystem(game)); int collisionRendererID = game.RegisterSystem(new CollisionRenderSystem(game)); int spriteRendererID = game.RegisterSystem(new SpriteRenderer(game)); int uiRendererID = game.RegisterSystem(new UIRenderer(game)); int aStarRendererID = game.RegisterSystem(new AStarPathfindingRenderer(game)); int transformResolverID = game.RegisterSystem(new PhysicsTransformResolverSystem(game)); int lifetimeSystemID = game.RegisterSystem(new LifetimeSystem(game)); int aStarPathRendererID = game.RegisterSystem(new AStarPathRenderer(game)); //services int collisionSystemID = game.RegisterSystem(new SATCollisionSystem(game, "Collision")); int aStarServiceID = game.RegisterSystem(new AStarPathfindingSystem(game, "Pathfinding", 50)); game.SetSystemCallOrder(new List<int> { spriteInitSystemID, //arrowInputSystemID, controllerInputSystemID, AISystemID, inputSystemID, animationSystemID, movementSystemID, actionSystemID, physicsSystemID, collisionSystemID, transformResolverID, boundsSystemID, lifetimeSystemID, //physicsSystemID, meshRendererID, collisionRendererID, spriteRendererID, uiRendererID, aStarRendererID, aStarPathRendererID }); //game.AddObject( // new PlayerObject(game, 1, Objects.Components.SpriteType.Yoshi)); GameObject yoshi = DynamicEntityFactory.BuildPlayerControlledEntity( game, 1, Color.Green, new Vector2(100, 0), 0.0f, new Vector2(1.0f, 1.0f), 300, 10000, 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() ); game.AddObject(yoshi); GameObject kirby = DynamicEntityFactory.BuildComputerControlledEntity( game, 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.GetYoshiMoves(), yoshi ); //kirby.AddComponent(new AStarComponent(kirby)); //kirby.AddComponent(new AIControllerComponent(kirby)); //kirby.AddComponent(new LifetimeComponent(kirby, 5000)); //kirby.SetParent(yoshi); game.AddObject(kirby); //game.AddObject(new TestObject(game, new Vector2(300, 300), 100, 100, Color.Red, 1, true)); game.AddObject(envFactory.BuildStaticRectangularObstacle( new Vector2(clientBounds.Width / 2, clientBounds.Height), new Rectangle(-clientBounds.Width / 2, -10, clientBounds.Width, 20), 1000.0f, Color.Red)); game.AddObject(new TimeObject(game, new Vector2 (0, 0), Color.Black)); AStarPathfindingSystem pathfinding = (AStarPathfindingSystem)game.GetService("Pathfinding"); AStarNode node1 = new AStarNode(new Vector2(clientBounds.Width / 2, clientBounds.Height - 50)); AStarNode node2 = new AStarNode(new Vector2(clientBounds.Width / 2 + 200, clientBounds.Height - 50)); node1.AddNeighbor(node2); node2.AddNeighbor(node1); AStarGraph graph = new AStarGraph(game, new List<AStarNode> { node1, node2 }); GameObject graphEntity = new GameObject(game); graphEntity.AddComponent(new AStarGraphComponent(graphEntity, graph)); game.AddObject(graphEntity); game.CurrentPathfindingGraph = graph; game.Character1 = yoshi; game.Character2 = kirby; */ game.Run(); } }