/// <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;
        }