コード例 #1
0
ファイル: SettingsRoom.cs プロジェクト: kucharjak/GalaxyBlox
        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);
        }
コード例 #2
0
ファイル: GameoverRoom.cs プロジェクト: kucharjak/GalaxyBlox
        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();
        }