protected override void Initialize() { DialogBackground = Contents.Sprites.Dialog_background; DialogIcon = Contents.Sprites.Dialog_icon_settings; DialogBackgroundScale = 4; IsDialog = true; this.Size = new Vector2(600, 735); CenterParent(); newIndicator = Settings.UserSettings.Indicator; newVibration = Settings.UserSettings.Vibration; newUseExtendedShapesLibrary = Settings.UserSettings.UseExtendedShapeLibrary; newSingleColor = Settings.UserSettings.UseSingleColor; var margin = new { top = 129, left = 25, right = 25, bottom = 35 }; // anonymous type for margin var settingsItemSize = new Vector2(160, 80); var settingsItemTextHeight = (int)(settingsItemSize.Y * 0.3f); var itemPadding = 25; var btnDialogSize = new Vector2(160, 80); var btnDialogTextHeight = (int)(btnDialogSize.Y * 0.3f); var highscoreBackgroundSize = new Vector2(Size.X - margin.left - margin.right, 4 * settingsItemSize.Y + 5 * itemPadding); // ADDING BACKGROUND GameObject obj = new DynamicBackgroundObject(this, Contents.Sprites.Dialog_inside, 4); obj.Position = new Vector2(margin.left, margin.top); obj.Size = highscoreBackgroundSize; obj.LayerDepth = 0.04f; Objects.Add(obj); // INDICATOR SETTINGS btnIndicator = Bank.Buttons.GetBasicButton(this); btnIndicator.Size = settingsItemSize; btnIndicator.TextHeight = settingsItemTextHeight; btnIndicator.Text = newIndicator.ToString().ToUpper(); btnIndicator.Position = new Vector2(Size.X - btnIndicator.Size.X - margin.right - itemPadding, obj.Position.Y + itemPadding); btnIndicator.Click += BtnSetIndicator_Click; Objects.Add(btnIndicator); obj = Bank.Visuals.GetLabelLeft(this); obj.Text = Constants.Texts.Indicator; obj.Size = settingsItemSize; obj.TextHeight = settingsItemTextHeight; obj.Position = new Vector2(margin.left + itemPadding, btnIndicator.Position.Y); Objects.Add(obj); // VIBRATTION SETTINS btnVibration = Bank.Buttons.GetBasicButton(this); btnVibration.Size = settingsItemSize; btnVibration.TextHeight = settingsItemTextHeight; btnVibration.Text = Settings.UserSettings.Vibration ? Constants.Texts.Yes : Constants.Texts.CheekyNo; btnVibration.Position = new Vector2(Size.X - btnVibration.Size.X - margin.right - itemPadding, btnIndicator.Position.Y + btnIndicator.Size.Y + itemPadding); btnVibration.Click += BtnVibration_Click; Objects.Add(btnVibration); obj = Bank.Visuals.GetLabelLeft(this); obj.Text = Constants.Texts.Vibration; obj.Size = settingsItemSize; obj.TextHeight = settingsItemTextHeight; obj.Position = new Vector2(margin.left + itemPadding, btnVibration.Position.Y); Objects.Add(obj); // SHAPES SETTINGS btnExtendedShapes = Bank.Buttons.GetBasicButton(this); btnExtendedShapes.Size = settingsItemSize; btnExtendedShapes.TextHeight = settingsItemTextHeight; btnExtendedShapes.Text = Settings.UserSettings.UseExtendedShapeLibrary ? Constants.Texts.Yes : Constants.Texts.CheekyNo; btnExtendedShapes.Position = new Vector2(Size.X - btnExtendedShapes.Size.X - margin.right - itemPadding, btnVibration.Position.Y + btnVibration.Size.Y + itemPadding); btnExtendedShapes.Click += BtnExtendedShapes_Click; Objects.Add(btnExtendedShapes); obj = Bank.Visuals.GetLabelLeft(this); obj.Text = Constants.Texts.ExtendedShapesLibrary; obj.Size = settingsItemSize; obj.TextHeight = settingsItemTextHeight; obj.Position = new Vector2(margin.left + itemPadding, btnExtendedShapes.Position.Y); Objects.Add(obj); // SINGLE COLOR SETTINGS btnSingleColor = Bank.Buttons.GetBasicButton(this); btnSingleColor.Size = settingsItemSize; btnSingleColor.TextHeight = settingsItemTextHeight; btnSingleColor.Text = Settings.UserSettings.UseSingleColor ? Constants.Texts.Yes : Constants.Texts.CheekyNo; btnSingleColor.Position = new Vector2(Size.X - btnSingleColor.Size.X - margin.right - itemPadding, btnExtendedShapes.Position.Y + btnExtendedShapes.Size.Y + itemPadding); btnSingleColor.Click += BtnSingleColor_Click; Objects.Add(btnSingleColor); obj = Bank.Visuals.GetLabelLeft(this); obj.Text = Constants.Texts.SingleColor; obj.Size = settingsItemSize; obj.TextHeight = settingsItemTextHeight; obj.Position = new Vector2(margin.left + itemPadding, btnSingleColor.Position.Y); Objects.Add(obj); // OK AND CANCEL BUTTONS btnOK = Bank.Buttons.GetBasicButton(this); btnOK.Size = btnDialogSize; btnOK.Text = Constants.Texts.Save; btnOK.TextHeight = btnDialogTextHeight; btnOK.Click += BtnOK_Click; Objects.Add(btnOK); btnCancel = Bank.Buttons.GetBasicButton(this); btnCancel.Size = btnDialogSize; btnCancel.Text = Constants.Texts.Cancel; btnCancel.TextHeight = btnDialogTextHeight; btnCancel.Click += BtnCancel_Click; Objects.Add(btnCancel); var btnPosX = (Size.X - (btnOK.Size.X + btnCancel.Size.X + margin.left)) / 2; btnOK.Position = new Vector2(btnPosX, Size.Y - btnOK.Size.Y - margin.bottom); btnPosX += btnOK.Size.X + margin.left; btnCancel.Position = new Vector2(btnPosX, Size.Y - btnCancel.Size.Y - margin.bottom); }
protected override void Initialize() { DialogBackground = Contents.Sprites.Dialog_background; DialogIcon = Contents.Sprites.Dialog_icon_highscore; DialogBackgroundScale = 4; IsDialog = true; Size = isNewHighscore ? new Vector2(600, 750) : new Vector2(600, 550); var margin = new { top = 129, left = 25, right = 25, bottom = 35 }; // anonymous type for margin var backgroundMargin = new { top = 30, bottom = 25 }; var btnDialogSize = new Vector2(160, 80); var btnDialogTextHeight = (int)(btnDialogSize.Y * 0.3f); var itemPadding = 50; GameObject obj = Bank.Visuals.GetLabelCenter(this); obj.Size = new Vector2(Size.X, 60); obj.Position = new Vector2(0, margin.top + backgroundMargin.top); obj.Text = Constants.Texts.GameOver; obj.TextHeight = (int)obj.Size.Y; Objects.Add(obj); var lastObj = obj; obj = Bank.Visuals.GetLabelCenter(this); obj.Size = new Vector2(Size.X, 30); obj.Position = new Vector2(0, lastObj.Position.Y + lastObj.Size.Y + itemPadding); obj.Text = isNewHighscore? Constants.Texts.NewHighscore : Constants.Texts.Score; obj.TextHeight = (int)obj.Size.Y; Objects.Add(obj); lastObj = obj; obj = Bank.Visuals.GetLabelCenter(this); obj.Size = new Vector2(Size.X, 40); obj.Position = new Vector2(0, lastObj.Position.Y + lastObj.Size.Y + itemPadding); obj.Text = Utils.Strings.ScoreToLongString(score); obj.TextHeight = (int)obj.Size.Y; Objects.Add(obj); lastObj = obj; if (isNewHighscore) { lastObj = obj; obj = Bank.Visuals.GetLabelCenter(this); obj.Size = new Vector2(Size.X, 30); obj.Position = new Vector2(0, lastObj.Position.Y + lastObj.Size.Y + itemPadding); obj.Text = Constants.Texts.SelectName; obj.TextHeight = (int)obj.Size.Y; Objects.Add(obj); lastObj = obj; var btnArrowSize = new Vector2(100, 60); var charItemSize = new Vector2(100, 80); var charItemPadding = 30; charactersList = new List <GameObject>(); var maxCharacters = 3; var posX = (Size.X - (maxCharacters - 1) * charItemPadding - charItemSize.X * maxCharacters) / 2; var posY = lastObj.Position.Y + lastObj.Size.Y + itemPadding; var lastName = Settings.UserSettings.LastName; for (int i = 0; i < maxCharacters; i++) { var arrUp = Bank.Buttons.GetPlainButtonWithText(this); arrUp.SpriteImage = Contents.Sprites.Button_up_medium; arrUp.Size = btnArrowSize; arrUp.Position = new Vector2(posX + i * (btnArrowSize.X + charItemPadding), posY); Objects.Add(arrUp); var character = new GameObject(this); character.Size = charItemSize; character.Position = new Vector2(posX + i * (charItemSize.X + charItemPadding), arrUp.Position.Y + arrUp.Size.Y + charItemPadding); character.ShowText = true; character.TextAlignment = TextAlignment.Center; character.TextSpriteFont = Contents.Fonts.PixelArtTextFont; character.TextHeight = (int)(charItemSize.Y * 0.8f); character.Text = Settings.UseLastHighscoreName && !String.IsNullOrEmpty(lastName) && lastName.Count() > i ? lastName[i].ToString() : Constants.AvailableNameChars.First().ToString(); character.TextColor = Color.White; character.LayerDepth = 0.05f; Objects.Add(character); charactersList.Add(character); var arrDown = Bank.Buttons.GetPlainButtonWithText(this); arrDown.SpriteImage = Contents.Sprites.Button_down_medium; arrDown.Size = btnArrowSize; arrDown.Position = new Vector2(posX + i * (btnArrowSize.X + charItemPadding), character.Position.Y + character.Size.Y + charItemPadding); Objects.Add(arrDown); arrDown.Click += delegate { var c = character.Text.First(); var selection = Constants.AvailableNameChars; var index = selection.IndexOf(c, 0); index++; if (index >= selection.Count()) { index = 0; } character.Text = selection[index].ToString(); RefreshOkButton(); }; arrUp.Click += delegate { var c = character.Text.First(); var selection = Constants.AvailableNameChars; var index = selection.IndexOf(c, 0); index--; if (index < 0) { index = selection.Count() - 1; } character.Text = selection[index].ToString(); RefreshOkButton(); }; lastObj = arrDown; } } var btnPadding = 30; Size = new Vector2(Size.X, lastObj.Position.Y + lastObj.Size.Y + btnDialogSize.Y + 2 * btnPadding + backgroundMargin.bottom); btnOK = Bank.Buttons.GetBasicButton(this); btnOK.Size = btnDialogSize; btnOK.Position = new Vector2((Size.X - btnOK.Size.X) / 2, Size.Y - btnOK.Size.Y - btnPadding); btnOK.Text = isNewHighscore ? Constants.Texts.CheekyOk : Constants.Texts.CheekyCancel; btnOK.TextHeight = btnDialogTextHeight; btnOK.Click += BtnOK_Click; Objects.Add(btnOK); var highscoreBackgroundSize = new Vector2(Size.X - margin.left - margin.right, Size.Y - margin.top - (Size.Y - btnOK.Position.Y) - btnPadding); obj = new DynamicBackgroundObject(this, Contents.Sprites.Dialog_inside, 4); obj.Position = new Vector2(margin.left, margin.top); obj.Size = highscoreBackgroundSize; obj.LayerDepth = 0.04f; Objects.Add(obj); RefreshOkButton(); CenterParent(); }