private void InitializePlayers() { var playersSection = levelConfig["Players"]; foreach (var player in playersSection.Options) { var playerConfig = ConfigFile.FromFile(player.Value); var section = playerConfig.GlobalSection; var playerName = (string)player.Key; if (!section.Options.ContainsKey("type")) { section.Options.Add("type", playerName); } var go = GameObject.Create(game, playerName, section); GameObjects.Add(go); } square = (Square)GetGameObject("square"); circle = (Circle)GetGameObject("circle"); }
public static GameObject Create(Game game, string gameObjectName, ConfigSection section) { var typeName = (string)section["type"]; GameObject resultObject; switch (typeName) { case "square": resultObject = new Square(game); break; case "circle": resultObject = new Circle(game); break; case "platform": resultObject = new PlatformObject(game); break; case "trigger": resultObject = new TriggerObject(game); break; case "toggleButton": resultObject = new ToggleButtonObject(game); break; case "holdButton": resultObject = new HoldButtonObject(game); break; default: { var message = new StringBuilder(); message.AppendFormat("Unsupported GameObject type: {0}", typeName); throw new NotSupportedException(message.ToString()); } } resultObject.Name = gameObjectName; resultObject.Initialize(section); Debug.Assert(resultObject.Body != null, "Game objects have to have a valid physics body after initialization."); return resultObject; }