/// <summary> /// A screen that asks if you want to save your changed options before closing /// </summary> /// <param name="game"></param> /// <returns></returns> public static UIScreen CloseOptionsConfirmationScreen(Game game) { Game1 g1 = (Game1)game; var retVal = new UIScreen(game) { EscapeCloses = true }; var sp = new StackPanel(game) { HAnchor = HorizontalAnchor.Middle, VAnchor = VerticalAnchor.Middle, SpriteBackground = true, Border = 4 }; retVal.Children.Add(sp); var label1 = new TextPanel(game) { Text = "Settings changed", SpriteBackground = false }; sp.Children.Add(label1); var label2 = new TextPanel(game) { Text = "Save changes?", SpriteBackground = false }; sp.Children.Add(label2); var buttonRow = new StackPanel(game) { Direction = LayoutDirection.Horizontal, MainNavigation = true }; sp.Children.Add(buttonRow); var saveButton = new Button(game) { Text = "Save", Width = 48 }; saveButton.OnClick += (snder, e) => { g1.Config.Save(); g1.ApplyGraphicsConfig(); g1.UI.CloseTopScreen(); g1.UI.CloseTopScreen(); }; buttonRow.Children.Add(saveButton); var discardButton = new Button(game) { Text = "Discard", Width = 48 }; discardButton.OnClick += (snder, e) => { g1.UI.CloseTopScreen(); g1.UI.CloseTopScreen(); }; buttonRow.Children.Add(discardButton); var cancelButton = new Button(game) { Text = "Cancel", Width = 48 }; cancelButton.OnClick += (snder, e) => { g1.UI.CloseTopScreen(); }; buttonRow.Children.Add(cancelButton); retVal.UpdateLayout(retVal.Bounds); return(retVal); }
/// <summary> /// A screen for changing the options /// </summary> /// <param name="game"></param> /// <returns></returns> public static UIScreen GlobalVarsScreen(Game game) { Game1 g1 = (Game1)game; var retVal = new UIScreen(game) { Purpose = ScreenPurpose.Options, EscapeCloses = true }; retVal.Escape += (sender, e) => { }; var spLabel = new StackPanel(game) { HAnchor = HorizontalAnchor.Middle, VAnchor = VerticalAnchor.Middle, SpriteBackground = true, Border = 4 }; retVal.Children.Add(spLabel); var optionsLabel = new TextPanel(game) { Text = "stuff", Width = 128, SpriteBackground = false }; spLabel.Children.Add(optionsLabel); var spMenu = new StackPanel(game) { HAnchor = HorizontalAnchor.Middle, VAnchor = VerticalAnchor.Middle, MainNavigation = true }; spLabel.Children.Add(spMenu); var move = new StackPanel(game) { Direction = LayoutDirection.Horizontal, HAnchor = HorizontalAnchor.Middle, ChildrenShareFocus = true, SpriteBackground = true, Border = 4 }; spMenu.Children.Add(move); var moveLabel = new TextPanel(game) { Text = "move Speed", Width = 32, SpriteBackground = false }; move.Children.Add(moveLabel); var moveSlide = new Slider(game) { Value = GlobalVarsHolder.PlayerRunSpeed, Minimum = 50, Maximum = 1000 }; moveSlide.ValueChanged += (sender, e) => { GlobalVarsHolder.PlayerRunSpeed = moveSlide.Value; }; move.Children.Add(moveSlide); var jump = new StackPanel(game) { Direction = LayoutDirection.Horizontal, HAnchor = HorizontalAnchor.Middle, ChildrenShareFocus = true, SpriteBackground = true, Border = 4 }; spMenu.Children.Add(jump); var jumpLabel = new TextPanel(game) { Text = "jump Speed", Width = 32, SpriteBackground = false }; jump.Children.Add(jumpLabel); var jumpSlide = new Slider(game) { Value = -GlobalVarsHolder.PlayerJump, Minimum = 50, Maximum = 1000 }; jumpSlide.ValueChanged += (sender, e) => { GlobalVarsHolder.PlayerJump = -jumpSlide.Value; }; jump.Children.Add(jumpSlide); var gravity = new StackPanel(game) { Direction = LayoutDirection.Horizontal, HAnchor = HorizontalAnchor.Middle, ChildrenShareFocus = true, SpriteBackground = true, Border = 4 }; spMenu.Children.Add(gravity); var gravityLabel = new TextPanel(game) { Text = "gravity", Width = 32, SpriteBackground = false }; gravity.Children.Add(gravityLabel); var gravitySlide = new Slider(game) { Value = GlobalVarsHolder.Gravity, Minimum = 100, Maximum = 2000, IncrementSize = 50 }; gravitySlide.ValueChanged += (sender, e) => { GlobalVarsHolder.Gravity = gravitySlide.Value; }; gravity.Children.Add(gravitySlide); var terminalVelocity = new StackPanel(game) { Direction = LayoutDirection.Horizontal, HAnchor = HorizontalAnchor.Middle, ChildrenShareFocus = true, SpriteBackground = true, Border = 4 }; spMenu.Children.Add(terminalVelocity); var terminalVelocityLabel = new TextPanel(game) { Text = "terminalVelocity", Width = 32, SpriteBackground = false }; terminalVelocity.Children.Add(terminalVelocityLabel); var terminalVelocitySlide = new Slider(game) { Value = GlobalVarsHolder.TerminalVelocity, Minimum = 500, Maximum = 1000 }; terminalVelocitySlide.ValueChanged += (sender, e) => { GlobalVarsHolder.TerminalVelocity = terminalVelocitySlide.Value; }; terminalVelocity.Children.Add(terminalVelocitySlide); var foo3000 = new StackPanel(game) { Direction = LayoutDirection.Horizontal, HAnchor = HorizontalAnchor.Middle, ChildrenShareFocus = true, SpriteBackground = true, Border = 4 }; spMenu.Children.Add(foo3000); var foo3000Label = new TextPanel(game) { Text = "foo3000", Width = 32, SpriteBackground = false }; foo3000.Children.Add(foo3000Label); var foo3000Slide = new Slider(game) { Value = 50, Minimum = -100, Maximum = 100 }; foo3000Slide.ValueChanged += (sender, e) => { //GlobalVarsHolder.TerminalVelocity = foo3000Slide.Value; }; foo3000.Children.Add(foo3000Slide); retVal.UpdateLayout(retVal.Bounds); return(retVal); }