/// <summary> /// Creates a new GameView and its subcomponents. /// </summary> /// <param name="model">The assigned GameModel.</param> /// <returns>The created GameView.</returns> public GameView BuildView(GameModel model) { WorldView worldView = new WorldView(model.World); GameView gameView; int i = 0; // to count the planets in the list of world objects foreach (WorldObject worldObject in model.World.WorldObjects) { if (worldObject is Spaceship) { Player player = GetPlayerOfSpaceship(model, (Spaceship)worldObject); worldView.AddWorldObjectView(new WorldObjectView(gameAssets.GetColoredSpaceship(player.PlayerColor), worldObject)); } else if (worldObject is Planet) { worldView.AddWorldObjectView(new WorldObjectView(gameAssets.GetModelPlanets()[i % gameAssets.GetModelPlanets().Length], worldObject)); i++; } else if (worldObject is Projectile) { worldView.AddWorldObjectView(new WorldObjectView(gameAssets.ModelRocket, worldObject)); } } gameView = new GameView(model, worldView); return gameView; }
/// <summary> /// Creates a new game using its dedicated GameBuilder. /// A game consists of a model and its view. /// </summary> public virtual void CreateGame() { gameModel = gameBuilder.BuildModel(); gameView = gameBuilder.BuildView(gameModel); }