public void Initialize(Scene scene, ActionPerformed gameListener, ActionPerformed modeListener) { // Create the main panel which holds all other GUI components frame = new G2DPanel(); frame.Bounds = new Rectangle(30, 305, 480, 280); frame.Border = GoblinEnums.BorderFactory.LineBorder; frame.Transparency = 0.7f; // Ranges from 0 (fully transparent) to 1 (fully opaque) frame.TextTransparency = 1.0f; uiFont = State.Content.Load <SpriteFont>("UIFont"); G2DLabel gameLabel = new G2DLabel("Game Mode:"); gameLabel.TextFont = uiFont; gameLabel.Bounds = new Rectangle(4, 4, 100, 48); // Create radio buttons for selecting the game mode gameAdd = new G2DRadioButton("Add"); gameAdd.TextFont = uiFont; gameAdd.Bounds = new Rectangle(18, 70, 150, 50); // Make the Addition mode as the selected one first gameAdd.DoClick(); gameEdit = new G2DRadioButton("Edit"); gameEdit.TextFont = uiFont; gameEdit.Bounds = new Rectangle(170, 70, 150, 50); gamePlay = new G2DRadioButton("Play"); gamePlay.TextFont = uiFont; gamePlay.Bounds = new Rectangle(310, 70, 150, 50); ButtonGroup gameGroup = new ButtonGroup(); gameGroup.Add(gameAdd); gameGroup.Add(gameEdit); gameGroup.Add(gamePlay); gameGroup.AddActionPerformedHandler(gameListener); frame.AddChild(gameLabel); frame.AddChild(gameAdd); frame.AddChild(gameEdit); frame.AddChild(gamePlay); G2DSeparator separator1 = new G2DSeparator(); separator1.Bounds = new Rectangle(5, 129, 470, 5); frame.AddChild(separator1); modeLabel = new G2DLabel("Add Mode:"); modeLabel.TextFont = uiFont; modeLabel.Bounds = new Rectangle(4, 140, 100, 48); modeRadio1 = new G2DRadioButton("Single"); modeRadio1.TextFont = uiFont; modeRadio1.Bounds = new Rectangle(20, 206, 200, 50); modeRadio1.DoClick(); modeRadio2 = new G2DRadioButton("Line"); modeRadio2.TextFont = uiFont; modeRadio2.Bounds = new Rectangle(220, 206, 250, 50); ButtonGroup addGroup = new ButtonGroup(); addGroup.Add(modeRadio1); addGroup.Add(modeRadio2); addGroup.AddActionPerformedHandler(modeListener); frame.AddChild(modeLabel); frame.AddChild(modeRadio1); frame.AddChild(modeRadio2); // Initially, make the GUI panel invisible frame.Visible = false; frame.Enabled = false; scene.UIRenderer.Add2DComponent(frame); }