Esempio n. 1
0
 /// <summary>
 /// Создает чекбокс с указанным изображением
 /// </summary>
 public Checkbox(MultiSprite image, Sound soundClick)
     : base(image)
 {
     this.soundClick = soundClick;
     Checked         = true;
     this.Click     += new EventHandler <MouseElementEventArgs>(Checkbox_Click);
 }
Esempio n. 2
0
        /// <summary>
        /// Создает новую панель принятия решения с указанными параметрами
        /// </summary>
        /// <param name="content">Управляющий контентом для этой панели</param>
        /// <param name="sprite">Спрайт, изображение панели</param>
        /// <param name="text">Текст, который отображается на панели</param>
        public ApplyPanel(Screen owner, ContentManager content, Sprite sprite, string text)
            : base(owner, content, sprite)
        {
            this.text = text;
            font      = content.Load <SpriteFont>(Fnames.PanelFont);
            bFont     = content.Load <SpriteFont>(Fnames.ButtonFont);

            Button Cancel = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.CancelB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 2.8f, Bounds.Top + (float)Bounds.Height / 4f * 2.5f), new Vector2(128 * (float)Bounds.Width / 390f, 35 * (float)Bounds.Height / 240f), Vector2.One),
                                       CreateSound3D(content, Fnames.UIButtonClick),
                                       CreateSound3D(content, Fnames.UIButtonSelect),
                                       bFont);

            Cancel.Text          = "";
            Cancel.Visible       = false;
            Cancel.Click        += new EventHandler <MouseElementEventArgs>(Cancel_Click);
            Cancel.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Cancel.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Button Apply = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ApplyB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 0.6f, Bounds.Top + (float)Bounds.Height / 4f * 2.5f), new Vector2(128 * (float)Bounds.Width / 390f, 35 * (float)Bounds.Height / 240f), Vector2.One),
                                      CreateSound3D(content, Fnames.UIButtonClick),
                                      CreateSound3D(content, Fnames.UIButtonSelect),
                                      bFont);

            Apply.Text          = "";
            Apply.Visible       = false;
            Apply.Click        += new EventHandler <MouseElementEventArgs>(Apply_Click);
            Apply.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Apply.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Buttons.Add(Cancel);
            Buttons.Add(Apply);

            Components.AddRange(Buttons);
        }
Esempio n. 3
0
        public MapRenderable2D(MapData2D mapData, ITexture tileset, TilesetData tileData) : base(Handlers)
        {
            _mapData  = mapData;
            _tileset  = tileset;
            _tileData = tileData;
            _tileset.GetSubImageDetails(0, out var tileSize, out _, out _, out _);
            TileSize = tileSize;

            var underlay = new SpriteInstanceData[_mapData.Width * _mapData.Height];
            var overlay  = new SpriteInstanceData[_mapData.Width * _mapData.Height];

            _underlay = new MultiSprite(new SpriteKey(
                                            _tileset,
                                            (int)DrawLayer.Underlay,
                                            underlay[0].Flags))
            {
                Instances = underlay.ToArray()
            };

            _overlay = new MultiSprite(new SpriteKey(
                                           _tileset,
                                           (int)DrawLayer.Overlay3,
                                           overlay[0].Flags))
            {
                Instances = overlay.ToArray()
            };
        }
Esempio n. 4
0
 public TexturePrev(MultiSprite image, Tiles tileType, ContentManager content)
     : base(image)
 {
     this.tileType = tileType;
     text          = TextSprite.CreateSprite(content, Fnames.TEXT_FONT, new Vector2(image.Bounds.Left, image.Bounds.Bottom), tileType.ToString());
     text.Position = new Vector2(image.Bounds.Left + (image.Bounds.Width - text.Size.X) / 2, image.Bounds.Bottom);
 }
Esempio n. 5
0
        public LoadPanel(Screen owner, ContentManager content, Sprite sprite)
            : base(owner, content, sprite)
        {
            bFont = content.Load <SpriteFont>(Fnames.ButtonFont);

            #region Buttons

            Button ExitLocal = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ExitLocalB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 3.2f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One),
                                          CreateSound3D(content, Fnames.UIButtonClick),
                                          CreateSound3D(content, Fnames.UIButtonSelect),
                                          bFont);
            ExitLocal.Text          = "";
            ExitLocal.Visible       = false;
            ExitLocal.Click        += new EventHandler <MouseElementEventArgs>(ExitLocal_Click);
            ExitLocal.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            ExitLocal.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Button Apply = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ApplyB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One),
                                      CreateSound3D(content, Fnames.UIButtonClick),
                                      CreateSound3D(content, Fnames.UIButtonSelect),
                                      bFont);
            Apply.Text          = "";
            Apply.Visible       = false;
            Apply.Click        += new EventHandler <MouseElementEventArgs>(Apply_Click);
            Apply.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Apply.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Buttons.Add(ExitLocal);
            Buttons.Add(Apply);

            #endregion

            Components.AddRange(Buttons);
        }
Esempio n. 6
0
 /// <summary>
 /// Создает кнопку с указанным изображением
 /// </summary>
 public Button(MultiSprite image)
     : base(image)
 {
     Animation    = false;
     maxAnimCount = (int)animationMode;
     initPos      = Position;
     initSize     = Size;
 }
Esempio n. 7
0
 public SpriteShaderKey(MultiSprite sprite, EngineFlags engineFlags) : this(
         sprite.Key.Texture.ArrayLayers > 1,
         (sprite.Key.Flags & SpriteKeyFlags.NoDepthTest) == 0,
         sprite.Key.Texture is EightBitTexture,
         (engineFlags & EngineFlags.UseCylindricalBillboards) != 0 &&
         (sprite.Key.Flags & SpriteKeyFlags.UseCylindrical) != 0)
 {
 }
Esempio n. 8
0
 public Element(Element g)
 {
     position = g.position;
     size     = g.size;
     image    = (MultiSprite)g.image.Clone();
     bounds   = g.bounds;
     vis      = g.vis;
 }
Esempio n. 9
0
        /// <summary>
        /// Создает новый ползунок с указанными параметрами
        /// </summary>
        /// <param name="image">Изображение тела ползунка</param>
        /// <param name="image_">Изображение каретки ползунка</param>
        public Slider(MultiSprite image, Sprite image_) : base(image)
        {
            this.image_       = image_;
            this.image_.Color = new Color(255, 255, 255, 200);
            this.MouseMove   += new EventHandler <MouseElementEventArgs>(Slider_MouseMove);

            value = 100;
        }
Esempio n. 10
0
 /// <summary>
 /// Создает новый элемент управления с указанным изображением
 /// </summary>
 /// <param name="image">Изображение для элемента управления</param>
 public Element(MultiSprite image)
 {
     this.position = image.Position;
     this.size     = image.Size;
     this.image    = image;
     bounds        = new Rectangle((int)position.X, (int)position.Y, (int)size.X, (int)size.Y);
     vis           = true;
 }
Esempio n. 11
0
 public TextboxULong(MultiSprite image, SpriteFont font, GraphicsDevice device)
     : base(image)
 {
     this.font   = font;
     this.device = device;
     spriteBatch = new SpriteBatch(device);
     render      = new RenderTarget2D(device, image.Width - 5, image.Height);
     this.Click += new EventHandler <MouseElementEventArgs>(Textbox_Click);
 }
Esempio n. 12
0
 public ListBox(MultiSprite image, MultiSprite meshSprite, SpriteFont font)
     : base(image)
 {
     mesh         = meshSprite;
     mesh.Visible = false;
     step         = (int)font.MeasureString("ASDFGHJKL:QWERTYUIOP{}ZXCVBNM<>?1234567890-=").Y + 4;
     this.font    = font;
     this.Click  += new EventHandler <MouseElementEventArgs>(ListBox_Click);
 }
Esempio n. 13
0
        /// <summary>
        /// Создает новый ползунок с указанными параметрами
        /// </summary>
        /// <param name="image">Изображение тела ползунка</param>
        /// <param name="image_">Изображение каретки ползунка</param>
        public Slider(MultiSprite image, Sprite image_, ContentManager content, string text = "") : base(image)
        {
            this.image_        = image_;
            this.image_.Color  = Color.Black;
            this.text          = TextSprite.CreateSprite(content, Fnames.TEXT_FONT, new Vector2(Image.Bounds.Left, Image.Bounds.Top), text);
            this.text.Position = new Vector2(Image.Bounds.Left + (Image.Bounds.Width - this.text.Size.X) / 2, Image.Bounds.Top - this.text.Size.Y);
            this.MouseMove    += new EventHandler <MouseElementEventArgs>(Slider_MouseMove);

            Value = 100;
        }
Esempio n. 14
0
        void Rebuild(int width, int height, int order)
        {
            var window = Resolve <IWindowManager>();

            {
                var normSize  = window.UiToNormRelative(new Vector2(width, height));
                var pixelSize = window.NormToPixelRelative(normSize);

                if ((pixelSize - _lastPixelSize).LengthSquared() < float.Epsilon && _sprite.RenderOrder == order)
                {
                    return;
                }
                _lastPixelSize = pixelSize;
            }

            var totalSize = GetSize();
            var extents   = new Rectangle(0, 0, (int)totalSize.X, (int)totalSize.Y);

            var instances = new List <SpriteInstanceData>();

            for (int j = extents.Y; j < extents.Height; j++)
            {
                for (int i = extents.X; i < extents.Width; i++)
                {
                    int         n     = instances.Count;
                    SpriteFlags flags = SpriteFlags.NoTransform | SpriteFlags.NoDepthTest;
                    if ((n & 1) != 0)
                    {
                        flags |= SpriteFlags.BlueTint;
                    }
                    if ((n & 2) != 0)
                    {
                        flags |= SpriteFlags.GreenTint;
                    }
                    if ((n & 4) != 0)
                    {
                        flags |= SpriteFlags.RedTint;
                    }
                    if ((n & 8) != 0)
                    {
                        flags |= SpriteFlags.Highlight;
                    }

                    var position = new Vector3(window.UiToNorm(new Vector2(i, j)), 0);
                    var size     = 2 * Vector2.One / window.Size;
                    instances.Add(SpriteInstanceData.Centred(position, size, Vector2.Zero, Vector2.One, 0, flags));
                }
            }

            _sprite = new MultiSprite(new SpriteKey(_pixel, order, instances[0].Flags))
            {
                Instances = instances.ToArray()
            };
        }
Esempio n. 15
0
        public SavePanel(Screen owner, ContentManager content, Sprite sprite)
            : base(owner, content, sprite)
        {
            bFont = content.Load <SpriteFont>(Fnames.ButtonFont);
            font  = content.Load <SpriteFont>(Fnames.SavePanelFont);

            #region Buttons

            Button ExitLocal = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ExitLocalB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 3.2f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One),
                                          CreateSound3D(content, Fnames.UIButtonClick),
                                          CreateSound3D(content, Fnames.UIButtonSelect),
                                          bFont);
            ExitLocal.Text          = "";
            ExitLocal.Visible       = false;
            ExitLocal.Click        += new EventHandler <MouseElementEventArgs>(ExitLocal_Click);
            ExitLocal.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            ExitLocal.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Button Apply = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ApplyB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One),
                                      CreateSound3D(content, Fnames.UIButtonClick),
                                      CreateSound3D(content, Fnames.UIButtonSelect),
                                      bFont);
            Apply.Text          = "";
            Apply.Visible       = false;
            Apply.Click        += new EventHandler <MouseElementEventArgs>(Apply_Click);
            Apply.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Apply.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Buttons.Add(ExitLocal);
            Buttons.Add(Apply);

            #endregion

            #region ListBox

            MultiSprite mesh = MultiSprite.CreateSprite(content, spriteBatch, Fnames.Mesh, Vector2.One, Vector2.One, Vector2.One);
            mesh.Color = new Color(0, 0, 0, 80);
            lbox       = new ListBox(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ListBox, new Vector2(Bounds.Left + Bounds.Width / 1000f * 120, Bounds.Top + Bounds.Height / 1000f * 100), new Vector2(Bounds.Width / 1.3f, Bounds.Height / 1.6f), Vector2.One),
                                     mesh,
                                     font);
            lbox[0] = this;
            lbox[1] = this;
            lbox[4] = "Kirill the superman!";
            lbox[9] = this;
            lbox[2] = bFont;
            lbox[3] = this;
            lbox[5] = this;
            //lbox[6] = lbox[7] = lbox[8] = this;

            #endregion

            Components.Add(lbox);
            Components.AddRange(Buttons);
        }
Esempio n. 16
0
        public MessagePanel(Screen owner, Sprite sprite, string text, string capture)
            : base(owner, sprite)
        {
            this.capture = capture;
            this.text    = text;
            font         = content.Load <SpriteFont>(Fnames.TEXT_FONT);

            Button Ok = new Button(MultiSprite.CreateSprite(content, Fnames.OK_B, new Vector2(Bounds.Left + Bounds.Width / 1000f * 450, Bounds.Top + Bounds.Height / 1000f * 800), new Vector2(120, 41), Vector2.One));

            Ok.Click += new EventHandler <MouseElementEventArgs>(Ok_Click);

            Components.Add(Ok);
        }
Esempio n. 17
0
        protected override void LoadContent()
        {
            #region Background

            Texture2D f1 = Content.Load <Texture2D>(Fnames.BACKGROUND_FRAME1);
            Texture2D f2 = Content.Load <Texture2D>(Fnames.BACKGROUND_FRAME2);
            Texture2D f3 = Content.Load <Texture2D>(Fnames.BACKGROUND_FRAME3);
            Texture2D f4 = Content.Load <Texture2D>(Fnames.BACKGROUND_FRAME4);

            backGround.AddFrame(f1);
            backGround.AddFrame(f2);
            backGround.AddFrame(f3);
            backGround.AddFrame(f4);

            #endregion

            #region Buttons

            int start = 350;
            int step  = 65;
            int count = 0;

            Button StartEdit = new Button(MultiSprite.CreateSprite(Content, Fnames.START_EDIT_B, new Vector2(Window.ClientBounds.Width / 2f - 80, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(160, 55), Vector2.One));
            StartEdit.Click        += new EventHandler <MouseElementEventArgs>(StartEdit_Click);
            StartEdit.AnimationMode = AnimationStates.Small;
            StartEdit.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            StartEdit.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Button Exit = new Button(MultiSprite.CreateSprite(Content, Fnames.EXIT_B2, new Vector2(Window.ClientBounds.Width / 2f - 80, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(160, 55), Vector2.One));
            Exit.AnimationMode = AnimationStates.Small;
            Exit.Click        += new EventHandler <MouseElementEventArgs>(Exit_Click);
            Exit.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Exit.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            buttons.Add(StartEdit);
            buttons.Add(Exit);

            #endregion

            #region Panels

            mapInitPanel               = new MapInitPanel(this, Sprite.CreateSprite(Content, Fnames.PANEL1, new Vector2(Window.ClientBounds.Width / 1000f * 220, Window.ClientBounds.Height / 1000f * 250), new Vector2(730, 500)));
            mapInitPanel.Enabled      += new EventHandler <EventArgs>(panel_Enabled);
            mapInitPanel.Disabled     += new EventHandler <EventArgs>(panel_Disabled);
            mapInitPanel.CreateCalled += new EventHandler <MapInitEventArgs>(mapInitPanel_CreateCalled);

            #endregion

            Components.AddRange(buttons);
            Components.Add(mapInitPanel);
        }
Esempio n. 18
0
        /// <summary>
        /// Создает кнопку с указанным изображением
        /// </summary>
        public Button(MultiSprite image, Sound3D soundClick, Sound3D soundSelection, SpriteFont font)
            : base(image)
        {
            this.soundSelection = soundSelection;
            this.soundClick     = soundClick;
            this.font           = font;
            this.text           = "button";
            this.textPos        = new Vector2(Bounds.X + Bounds.Width / 2, Bounds.Y + Bounds.Height / 2) - font.MeasureString(text) / 2;
            Animation           = false;
            this.MouseMoveIn   += new EventHandler <MouseElementEventArgs>(Button_MouseMoveIn);
            this.Click         += new EventHandler <MouseElementEventArgs>(Button_Click);

            initPos  = Position;
            initSize = Size;
        }
Esempio n. 19
0
        /// <summary>
        /// Создает новый элемента PrevList с указанными параметрами.
        /// Правая часть скопируется с левой и отразится по горизонтали
        /// </summary>
        /// <param name="image">Изображение левой части элемента</param>
        /// <param name="content">Управляющий контентом</param>
        /// <param name="prevsInOneDim">Максимальное кол-во элементов TexturePrev в одном измерении</param>
        /// <param name="formatMethod">Метод, применяемый к каждому элементу TexturePrev при горизонтальном форматировании (вертикальное форматирование встроено)</param>
        public PrevList(MultiSprite image, ContentManager content, ushort prevsInOneDim, Action <TexturePrev> formatMethod)
            : base(image)
        {
            currentListNumberText          = TextSprite.CreateSprite(content, Fnames.TEXT_FONT, new Vector2(image.Bounds.Right + 1, image.Bounds.Top), "");
            currentListNumberText.Position = new Vector2(image.Bounds.Right + 1, image.Bounds.Top);
            image2 = (MultiSprite)image.Clone();
            image2.SpriteEffect = SpriteEffects.FlipHorizontally;
            image2.MoveOn(new Vector2(image.Size.X + currentListNumberText.Font.MeasureString("0").X + 2, 0));
            list.Add(new List <TexturePrev>());
            CurrentListNumber = 0;
            PrevsInOneDim     = prevsInOneDim;
            FormatMethod      = formatMethod;

            this.Click      += new EventHandler <MouseElementEventArgs>(PrevList_Click);
            this.ClickRight += new EventHandler <MouseElementEventArgs>(PrevList_ClickRight);
        }
Esempio n. 20
0
        public static void Init(ContentManager CM, GraphicsDevice GD)
        {
            Texture2D expl = CM.Load <Texture2D>("Explode1");
            Texture2D exp3 = CM.Load <Texture2D>("Explode3");

            Eksplozja1 = new MultiSprite(ref expl, 23, 23, 8, 1, 1, 1);
            Eksplozja3 = new MultiSprite(ref exp3, 49, 49, 4, 2, 0, 0);

            for (int i = 0; i < 8; i++)
            {
                Planety[i] = CM.Load <Texture2D>("Planety\\planet" + (i + 1).ToString());
            }
            PolozeniePlanet[0] = new Vector2(270f, 510f);
            PolozeniePlanet[1] = new Vector2(0f, 600f);

            PowerUps[0] = CM.Load <Texture2D>("PowerUps\\bonustest");
            PowerUps[1] = CM.Load <Texture2D>("PowerUps\\Double");
            PowerUps[2] = CM.Load <Texture2D>("PowerUps\\Laser");
            PowerUps[3] = CM.Load <Texture2D>("PowerUps\\PointBlue");
            PowerUps[4] = CM.Load <Texture2D>("PowerUps\\PointBrown");
            PowerUps[5] = CM.Load <Texture2D>("PowerUps\\PointGreen");
            PowerUps[6] = CM.Load <Texture2D>("PowerUps\\PointRed");

            StatekGracza = CM.Load <Texture2D>("Ship");
            Statki[0]    = CM.Load <Texture2D>("Ship2");

            Bossowie[0] = CM.Load <Texture2D>("Boss");

            FontNazwaLvl = CM.Load <SpriteFont>("testfont");

            PrzyciskGraj = CM.Load <Texture2D>("ButtonGra");
            PrzyciskInfo = CM.Load <Texture2D>("Opcje");
            PrzyciskExit = CM.Load <Texture2D>("Exit");
            PrzyciskHelp = CM.Load <Texture2D> ("Help");

            HelpOverall = CM.Load <Texture2D>("HelpOverall");
            InfoOverall = CM.Load <Texture2D>("InfoOverall");

            Empty = new Texture2D(GD, 1, 1);
            Color[] pixels = new Color[1];
            pixels[0] = Color.White;
            Empty.SetData <Color>(pixels);
        }
Esempio n. 21
0
        /// <summary>
        /// Создает новый экземпляр CreditsPanel с указанными параметрами
        /// </summary>
        /// <param name="content">Управляющий контентом для этой панели</param>
        /// <param name="sprite">Спрайт, изображение панели</param>
        /// <param name="text">Текст, прописанный в панели "Об авторах"</param>
        public CreditsPanel(Screen owner, ContentManager content, Sprite sprite, string text)
            : base(owner, content, sprite)
        {
            this.text = text;
            font      = content.Load <SpriteFont>(Fnames.BigFont);
            bFont     = content.Load <SpriteFont>(Fnames.ButtonFont);

            Button ExitLocal = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ExitLocalB, new Vector2(sprite.Bounds.Left + (float)sprite.Bounds.Width / 5f * 3.2f, sprite.Bounds.Top + (float)sprite.Bounds.Height / 4f * 3.2f), new Vector2(128, 35), Vector2.One),
                                          CreateSound3D(content, Fnames.UIButtonClick),
                                          CreateSound3D(content, Fnames.UIButtonSelect),
                                          bFont);

            ExitLocal.Text          = "";
            ExitLocal.Visible       = false;
            ExitLocal.Click        += new EventHandler <MouseElementEventArgs>(ExitLocal_Click);
            ExitLocal.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            ExitLocal.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Buttons.Add(ExitLocal);

            Components.AddRange(Buttons);
        }
Esempio n. 22
0
 public PrevList(PrevList g)
     : base(g)
 {
     formatMethod          = g.formatMethod;
     image2                = (MultiSprite)g.image2.Clone();
     currentListNumber     = g.currentListNumber;
     currentListNumberText = (TextSprite)g.currentListNumberText.Clone();
     list = new List <List <TexturePrev> >();
     for (int i = 0; i < g.list.Count; i++)
     {
         AddDimension();
         foreach (var prev in g.list[i])
         {
             list[i].Add((TexturePrev)prev.Clone());
         }
     }
     prevs = new List <TexturePrev>();
     foreach (var prev in g.prevs)
     {
         prevs.Add((TexturePrev)prev.Clone());
     }
     prevsInOneDim     = g.prevsInOneDim;
     currentListNumber = g.currentListNumber;
 }
Esempio n. 23
0
        /// <summary>
        /// Обработчик клавиатуры
        /// </summary>
        /// <param name="kbs">Текущее состояние калвиатуры</param>
        /// <param name="okbs">Предшествующее состояние клавиатуры</param>
        protected override void KeyboardHandler(KeyboardState kbs, KeyboardState okbs)
        {
            Vector2 msPos = MousePosition(MS);

            if (kbs.IsKeyDown(Keys.LeftControl) && !okbs.IsKeyDown(Keys.LeftControl))
            {
                isCtrl = true;
            }
            if (kbs.IsKeyUp(Keys.LeftControl) && !okbs.IsKeyUp(Keys.LeftControl))
            {
                isCtrl = false;
            }

            #region Debug

            if (kbs.IsKeyDown(Keys.W) && !okbs.IsKeyDown(Keys.W))
            {
                new TCSwordman(msPos.X - 15, msPos.Y - 15, 100, 10, 3, Vector2.Zero, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Swordman,
                                                                                                              new Vector2(msPos.X - 15, msPos.Y - 15), new Vector2(72, 72), new Vector2(5, 24), World.FPS));
            }
            if (kbs.IsKeyDown(Keys.E) && !okbs.IsKeyDown(Keys.E))
            {
                new TEnemy(msPos.X - 15, msPos.Y - 15, 100, 10, 0, Vector2.Zero, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Enemy,
                                                                                                          new Vector2(msPos.X - 15, msPos.Y - 15), new Vector2(30, 30), new Vector2(6, 2), World.FPS));
            }
            if (kbs.IsKeyDown(Keys.T) && !okbs.IsKeyDown(Keys.T))
            {
                new TStone(msPos.X - 30, msPos.Y - 30, 500, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Stone,
                                                                                     new Vector2(msPos.X - 30, msPos.Y - 30), new Vector2(60, 60), new Vector2(1, 2), World.FPS));
            }
            if (kbs.IsKeyDown(Keys.G) && !okbs.IsKeyDown(Keys.G))
            {
                new TTree(msPos.X - 30, msPos.Y - 30, 150, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.BigTree,
                                                                                    new Vector2(msPos.X - 30, msPos.Y - 30), new Vector2(60, 60), new Vector2(3, 1), World.FPS));
            }
            if (kbs.IsKeyDown(Keys.H) && !okbs.IsKeyDown(Keys.H))
            {
                new TTree(msPos.X - 25, msPos.Y - 25, 100, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.SmallTree,
                                                                                    new Vector2(msPos.X - 25, msPos.Y - 25), new Vector2(50, 50), new Vector2(3, 1), World.FPS));
            }
            if (kbs.IsKeyDown(Keys.A) && !okbs.IsKeyDown(Keys.A))
            {
                new TCityCenter(msPos.X - 70, msPos.Y - 70, 500, 5, true, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.CityCenter,
                                                                                                   new Vector2(msPos.X - 70, msPos.Y - 70), new Vector2(150, 140), new Vector2(3, 1), World.FPS));
            }
            if (kbs.IsKeyDown(Keys.F) && !okbs.IsKeyDown(Keys.F))
            {
                new TFarm(msPos.X - 60, msPos.Y - 34, 250, 1, true, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Farm,
                                                                                             new Vector2(msPos.X - 60, msPos.Y - 34), new Vector2(120, 67), new Vector2(3, 1), World.FPS));
            }
            if (kbs.IsKeyDown(Keys.B) && !okbs.IsKeyDown(Keys.B))
            {
                new TBaracks(msPos.X - 48, msPos.Y - 46, 400, 4, true, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Baracks,
                                                                                                new Vector2(msPos.X - 48, msPos.Y - 46), new Vector2(97, 92), new Vector2(3, 1), World.FPS));
            }
            if (kbs.IsKeyDown(Keys.Space) && !okbs.IsKeyDown(Keys.Space))
            {
                if (TObjectUnderPoint(MS.X, MS.Y) is IHP)
                {
                    (TObjectUnderPoint(MS.X, MS.Y) as IHP).HP -= 60;
                }
                if (TObjectUnderPoint(MS.X, MS.Y) is ISource)
                {
                    (TObjectUnderPoint(MS.X, MS.Y) as ISource).Supply -= 49;
                }
            }
            if (kbs.IsKeyDown(Keys.Enter) && !okbs.IsKeyDown(Keys.Enter))
            {
                Saver.Save();
            }
            if (kbs.IsKeyDown(Keys.RightShift) && !okbs.IsKeyDown(Keys.RightShift))
            {
                Loader.Load();
            }
            if (kbs.IsKeyDown(Keys.Delete) && !okbs.IsKeyDown(Keys.Delete))
            {
                if (TObjectUnderPoint(MS.X, MS.Y) != null)
                {
                    TObjectUnderPoint(MS.X, MS.Y).Dispose();
                }
            }

            #endregion
        }
Esempio n. 24
0
        /// <summary>
        /// Создает новый экземпляр CreditsPanel с указанными параметрами
        /// </summary>
        /// <param name="content">Управляющий контентом для этой панели</param>
        /// <param name="sprite">Спрайт, изображение панели</param>
        /// <param name="spriteBatch">Спрайт батч, нужный для создания чекбоксов</param>
        /// <param name="settings">Настройки игры</param>
        public OptionsPanel(Screen owner, ContentManager content, Sprite sprite, Settings settings)
            : base(owner, content, sprite)
        {
            checkboxes    = new List <Checkbox>();
            sliders       = new List <Slider>();
            font          = content.Load <SpriteFont>(Fnames.PanelFont);
            bFont         = content.Load <SpriteFont>(Fnames.ButtonFont);
            this.settings = settings;
            initMusicV    = settings.MusicVolume;

            #region Buttons

            Button ExitLocal = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ExitLocalB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 3.2f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One),
                                          CreateSound3D(content, Fnames.UIButtonClick),
                                          CreateSound3D(content, Fnames.UIButtonSelect),
                                          bFont);
            ExitLocal.Text          = "";
            ExitLocal.Visible       = false;
            ExitLocal.Click        += new EventHandler <MouseElementEventArgs>(ExitLocal_Click);
            ExitLocal.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            ExitLocal.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Button Apply = new Button(MultiSprite.CreateSprite(content, spriteBatch, Fnames.ApplyB, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 3f), new Vector2(128, 35), Vector2.One),
                                      CreateSound3D(content, Fnames.UIButtonClick),
                                      CreateSound3D(content, Fnames.UIButtonSelect),
                                      bFont);
            Apply.Text          = "";
            Apply.Visible       = false;
            Apply.Click        += new EventHandler <MouseElementEventArgs>(Apply_Click);
            Apply.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Apply.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Buttons.Add(ExitLocal);
            Buttons.Add(Apply);

            #endregion

            #region Checkboxes

            musicMute = new Checkbox(MultiSprite.CreateSprite(content, spriteBatch, Fnames.Checkbox1, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 1f), new Vector2(42, 39), new Vector2(2, 1)),
                                     CreateSound(content, Fnames.UIButtonClick));
            musicMute.Visible = false;
            musicMute.Checked = !settings.MusicIsMuted;
            musicMute.Click  += new EventHandler <MouseElementEventArgs>(musicMute_Click);

            soundMute = new Checkbox(MultiSprite.CreateSprite(content, spriteBatch, Fnames.Checkbox1, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 1.8f), new Vector2(42, 39), new Vector2(2, 1)),
                                     CreateSound(content, Fnames.UIButtonClick));
            soundMute.Visible = false;
            soundMute.Checked = !settings.SoundIsMuted;
            soundMute.Click  += new EventHandler <MouseElementEventArgs>(soundMute_Click);

            Checkboxes.Add(musicMute);
            Checkboxes.Add(soundMute);

            #endregion

            #region Sliders

            musicSlider = new Slider(MultiSprite.CreateSprite(content, spriteBatch, Fnames.Slider1, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 1.4f), new Vector2(238, 26), Vector2.One),
                                     Sprite.CreateSprite(content, Fnames.Slider_, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 1.4f), new Vector2(12, 26)));
            musicSlider.Visible    = false;
            musicSlider.MouseMove += new EventHandler <MouseElementEventArgs>(musicSlider_MouseMove);
            musicSlider.Value      = settings.MusicVolume;

            soundSlider = new Slider(MultiSprite.CreateSprite(content, spriteBatch, Fnames.Slider1, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 2.2f), new Vector2(238, 26), Vector2.One),
                                     Sprite.CreateSprite(content, Fnames.Slider_, new Vector2(Bounds.Left + (float)Bounds.Width / 5f * 1f, Bounds.Top + (float)Bounds.Height / 4f * 2.2f), new Vector2(12, 26)));
            soundSlider.Visible    = false;
            soundSlider.MouseMove += new EventHandler <MouseElementEventArgs>(soundSlider_MouseMove);
            soundSlider.Value      = settings.SoundVolume;

            Sliders.Add(musicSlider);
            Sliders.Add(soundSlider);

            #endregion

            Components.AddRange(Buttons);
            Components.AddRange(Checkboxes);
            Components.AddRange(Sliders);
        }
Esempio n. 25
0
        public MapInitPanel(Screen owner, Sprite sprite)
            : base(owner, sprite)
        {
            TextFont = content.Load <SpriteFont>(Fnames.TEXT_FONT);
            NumFont  = content.Load <SpriteFont>(Fnames.SEGOE_UI);

            #region Buttons

            Button Create = new Button(MultiSprite.CreateSprite(content, Fnames.CREATE_B, new Vector2(Bounds.Right - Bounds.Width / 1000f * 250, Bounds.Top + Bounds.Height / 1000f * 700), new Vector2(120, 41), Vector2.One));
            Create.AnimationMode = AnimationStates.Small;
            Create.Click        += new EventHandler <MouseElementEventArgs>(Create_Click);
            Create.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Create.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Button Cancel = new Button(MultiSprite.CreateSprite(content, Fnames.CANCEL_B, new Vector2(Bounds.Right - Bounds.Width / 1000f * 250, Bounds.Top + Bounds.Height / 1000f * 800), new Vector2(120, 41), Vector2.One));
            Cancel.AnimationMode = AnimationStates.Small;
            Cancel.Click        += new EventHandler <MouseElementEventArgs>(Cancel_Click);
            Cancel.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Cancel.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            buttons.Add(Create);
            buttons.Add(Cancel);

            #endregion

            #region Textboxes

            TileWidthBox = new TextboxULong(MultiSprite.CreateSprite(content, Fnames.TEXTBOX1, new Vector2(Bounds.Left + Bounds.Width / 1000f * 125, Bounds.Top + Bounds.Height / 1000f * 150).Round(), new Vector2(160, 31), Vector2.One),
                                            NumFont,
                                            owner.GraphicsDevice);
            TileWidthBox.ValueChanged += new EventHandler <ValueChangedEventArgs <ulong> >(TileWidthBox_ValueChanged);
            TileWidthBox.MaxTextLength = 2;
            TileWidthBox.Value         = 64;

            FieldWidthBox = new TextboxULong(MultiSprite.CreateSprite(content, Fnames.TEXTBOX1, new Vector2(Bounds.Left + Bounds.Width / 1000f * 125, Bounds.Top + Bounds.Height / 1000f * 280).Round(), new Vector2(160, 31), Vector2.One),
                                             NumFont,
                                             owner.GraphicsDevice);
            FieldWidthBox.ValueChanged += new EventHandler <ValueChangedEventArgs <ulong> >(FieldWidthBox_ValueChanged);
            FieldWidthBox.MaxTextLength = 4;
            FieldWidthBox.Value         = 5000;

            FieldHeightBox = new TextboxULong(MultiSprite.CreateSprite(content, Fnames.TEXTBOX1, new Vector2(Bounds.Left + Bounds.Width / 1000f * 125, Bounds.Top + Bounds.Height / 1000f * 380).Round(), new Vector2(160, 31), Vector2.One),
                                              NumFont,
                                              owner.GraphicsDevice);
            FieldHeightBox.ValueChanged += new EventHandler <ValueChangedEventArgs <ulong> >(FieldHeightBox_ValueChanged);
            FieldHeightBox.MaxTextLength = 4;
            FieldHeightBox.Value         = 4000;

            textboxes.Add(TileWidthBox);
            textboxes.Add(FieldWidthBox);
            textboxes.Add(FieldHeightBox);

            #endregion

            msgPanel           = new MessagePanel(owner, Sprite.CreateSprite(content, Fnames.PANEL2, new Vector2(450, 350), new Vector2(350, 250)), " ", " ");
            msgPanel.Enabled  += new EventHandler <EventArgs>(msgPanel_Enabled);
            msgPanel.Disabled += new EventHandler <EventArgs>(msgPanel_Disabled);

            Components.AddRange(buttons);
            Components.AddRange(textboxes);
            Components.Add(msgPanel);
        }
Esempio n. 26
0
        public UIPanel(Screen owner, Sprite sprite)
            : base(owner, sprite)
        {
            mapRect                 = new Rectangle(1085, 808, 180, 200);
            bottomPanelRect         = new Rectangle(18, 808, 1065, 200);
            rightPanelRect          = new Rectangle(1085, 18, 178, 800);
            prevViewRect            = new Rectangle(bottomPanelRect.X + 650, bottomPanelRect.Y + 15, 125, 125);
            this.ChangeCurrentPrev += new EventHandler <ChangePrevEventArgs>(UIPanel_ChangeCurrentPrev);

            #region Texture Prevs

            TexturePrev SnowPrev = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SNOW, new Vector2(rightPanelRect.X, rightPanelRect.Y + 50), new Vector2(80, 80), Vector2.One),
                                                   Tiles.Snow,
                                                   content);
            TexturePrev DustPrev = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.DUST, new Vector2(rightPanelRect.X, SnowPrev.Position.Y + SnowPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                   Tiles.Dust,
                                                   content);
            TexturePrev Grass1 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.GRASS1, new Vector2(rightPanelRect.X, DustPrev.Position.Y + DustPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                 Tiles.Grass1,
                                                 content);
            TexturePrev Grass2 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.GRASS2, new Vector2(rightPanelRect.X, Grass1.Position.Y + DustPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                 Tiles.Grass2,
                                                 content);
            TexturePrev Grass3 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.GRASS3, new Vector2(rightPanelRect.X, Grass2.Position.Y + DustPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                 Tiles.Grass3,
                                                 content);
            TexturePrev DarkGrassPrev = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.DARK_GRASS, new Vector2(rightPanelRect.X, Grass3.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                        Tiles.DarkGrass,
                                                        content);
            TexturePrev GrassPath = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.GRASS_PATH, new Vector2(rightPanelRect.X, DarkGrassPrev.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                    Tiles.GrassPath,
                                                    content);
            TexturePrev Sand1 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SAND1, new Vector2(rightPanelRect.X, GrassPath.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                Tiles.Sand1,
                                                content);
            TexturePrev Sand2 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SAND2, new Vector2(rightPanelRect.X, Sand1.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                Tiles.Sand2,
                                                content);
            TexturePrev Sand3 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SAND3, new Vector2(rightPanelRect.X, Sand2.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                Tiles.Sand3,
                                                content);
            TexturePrev Sand4 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.SAND4, new Vector2(rightPanelRect.X, Sand3.Position.Y + Grass1.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                Tiles.Sand4,
                                                content);
            TexturePrev Water1a = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER1_A, new Vector2(rightPanelRect.X, Sand4.Position.Y + DarkGrassPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                  Tiles.Water1a,
                                                  content);
            TexturePrev Water1b = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER1_B, new Vector2(rightPanelRect.X, Water1a.Position.Y + DarkGrassPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                  Tiles.Water1b,
                                                  content);
            TexturePrev Water1c = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER1_C, new Vector2(rightPanelRect.X, Water1b.Position.Y + DarkGrassPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                  Tiles.Water1c,
                                                  content);
            TexturePrev Water1d = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER1_D, new Vector2(rightPanelRect.X, Water1c.Position.Y + DarkGrassPrev.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                  Tiles.Water1d,
                                                  content);
            TexturePrev Water2 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER2, new Vector2(rightPanelRect.X, Water1d.Position.Y + Water1a.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                 Tiles.Water2,
                                                 content);
            TexturePrev Water3a = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER3_A, new Vector2(rightPanelRect.X, Water2.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                  Tiles.Water3a,
                                                  content);
            TexturePrev Water3b = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER3_B, new Vector2(rightPanelRect.X, Water3a.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                  Tiles.Water3b,
                                                  content);
            TexturePrev Water3c = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.WATER3_C, new Vector2(rightPanelRect.X, Water3b.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                  Tiles.Water3c,
                                                  content);
            TexturePrev Ford1 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.FORD1, new Vector2(rightPanelRect.X, Water3c.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                Tiles.Ford1,
                                                content);
            TexturePrev Road1 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.ROAD1, new Vector2(rightPanelRect.X, Ford1.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                Tiles.Road1,
                                                content);
            TexturePrev Road2 = new TexturePrev(MultiSprite.CreateSprite(content, Fnames.ROAD2, new Vector2(rightPanelRect.X, Road1.Position.Y + Water2.Size.Y + 50), new Vector2(80, 80), Vector2.One),
                                                Tiles.Road2,
                                                content);

            prevsList.Add(SnowPrev);
            prevsList.Add(DustPrev);
            prevsList.Add(Grass1);
            prevsList.Add(Grass2);
            prevsList.Add(Grass3);
            prevsList.Add(DarkGrassPrev);
            prevsList.Add(GrassPath);
            prevsList.Add(Sand1);
            prevsList.Add(Sand2);
            prevsList.Add(Sand3);
            prevsList.Add(Sand4);
            prevsList.Add(Water1a);
            prevsList.Add(Water1b);
            prevsList.Add(Water1c);
            prevsList.Add(Water1d);
            prevsList.Add(Water2);
            prevsList.Add(Water3a);
            prevsList.Add(Water3b);
            prevsList.Add(Water3c);
            prevsList.Add(Ford1);
            prevsList.Add(Road1);
            prevsList.Add(Road2);
            prevsList.ForEach((x) => x.Click += new EventHandler <MouseElementEventArgs>(texturePrev_Click));

            #endregion

            #region Navigator

            Navigator = new PrevList(MultiSprite.CreateSprite(content, Fnames.ARROW, new Vector2(rightPanelRect.X + 50, rightPanelRect.Y + 15), new Vector2(32, 24), Vector2.One),
                                     content,
                                     5,
                                     (x) => x.Position = new Vector2(rightPanelRect.X + rightPanelRect.Width / 2 - x.Size.X / 2, x.Position.Y));
            foreach (var prev in prevsList)
            {
                Navigator.AddPrev(prev);
            }

            #endregion

            #region Sliders

            r_Slider = new Slider(MultiSprite.CreateSprite(content, Fnames.SLIDER, new Vector2(bottomPanelRect.X + 50, bottomPanelRect.Y + 50), new Vector2(150, 23), Vector2.One),
                                  Sprite.CreateSprite(content, Fnames.SLIDER_, new Vector2(bottomPanelRect.X + 50, bottomPanelRect.Y + 50 + 18), new Vector2(12, 12)),
                                  Color.Red,
                                  content,
                                  "Red component");
            g_Slider = new Slider(MultiSprite.CreateSprite(content, Fnames.SLIDER, new Vector2(bottomPanelRect.X + 50 + 200, bottomPanelRect.Y + 50), new Vector2(150, 23), Vector2.One),
                                  Sprite.CreateSprite(content, Fnames.SLIDER_, new Vector2(bottomPanelRect.X + 50 + 200, bottomPanelRect.Y + 50 + 18), new Vector2(12, 12)),
                                  Color.Green,
                                  content,
                                  "Green component");
            b_Slider = new Slider(MultiSprite.CreateSprite(content, Fnames.SLIDER, new Vector2(bottomPanelRect.X + 50 + 400, bottomPanelRect.Y + 50), new Vector2(150, 23), Vector2.One),
                                  Sprite.CreateSprite(content, Fnames.SLIDER_, new Vector2(bottomPanelRect.X + 50 + 400, bottomPanelRect.Y + 50 + 18), new Vector2(12, 12)),
                                  Color.Blue,
                                  content,
                                  "Blue component");

            sliders.Add(r_Slider);
            sliders.Add(g_Slider);
            sliders.Add(b_Slider);
            foreach (var slider in sliders)
            {
                slider.Visible       = false;
                slider.ValueChanged += new EventHandler <ValueChangedEventArgs <float> >(slider_ValueChanged);
            }

            #endregion

            #region Buttons

            Button Fill = new Button(MultiSprite.CreateSprite(content, Fnames.FILL_B, new Vector2(bottomPanelRect.X + 50, bottomPanelRect.Y + 150), new Vector2(126, 36), Vector2.One));
            Fill.Click  += new EventHandler <MouseElementEventArgs>(Fill_Click);
            Fill.Visible = false;

            Button Save = new Button(MultiSprite.CreateSprite(content, Fnames.SAVE_B, new Vector2(bottomPanelRect.Right - 160, bottomPanelRect.Y + 15), new Vector2(126, 36), Vector2.One));
            Save.Click += new EventHandler <MouseElementEventArgs>(Save_Click);

            Button Load = new Button(MultiSprite.CreateSprite(content, Fnames.LOAD_B, new Vector2(bottomPanelRect.Right - 160, Save.Position.Y + Save.Size.Y + 10), new Vector2(126, 36), Vector2.One));
            Load.Click += new EventHandler <MouseElementEventArgs>(Load_Click);

            Button Clear = new Button(MultiSprite.CreateSprite(content, Fnames.CLEAR_B, new Vector2(bottomPanelRect.Right - 160, Load.Position.Y + Save.Size.Y + 10), new Vector2(126, 36), Vector2.One));
            Clear.Click += new EventHandler <MouseElementEventArgs>(Clear_Click);

            Button Exit = new Button(MultiSprite.CreateSprite(content, Fnames.EXIT_B, new Vector2(bottomPanelRect.Right - 160, Clear.Position.Y + Save.Size.Y + 10), new Vector2(126, 36), Vector2.One));
            Exit.Click += new EventHandler <MouseElementEventArgs>(Exit_Click);

            notStaticButtons.Add(Fill);

            staticButtons.Add(Save);
            staticButtons.Add(Load);
            staticButtons.Add(Clear);
            staticButtons.Add(Exit);

            buttons.AddRange(staticButtons);
            buttons.AddRange(notStaticButtons);
            foreach (var button in buttons)
            {
                button.AnimationMode = AnimationStates.Small;
                button.MouseMoveIn  += new EventHandler <MouseElementEventArgs>(Button_MouseMoveIn);
                button.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);
            }

            #endregion

            Components.Add(Navigator);
            Components.AddRange(sliders);
            Components.AddRange(buttons);
        }
Esempio n. 27
0
        public PlayerOne(TextureManager _t, Renderer renderer)
        {
            this.renderer = renderer;
            Width         = 32;
            Height        = 48;

            position = new Vector2D(0, 50);

            //Texture texture = _t.Get("Player00");
            //sprite = new Sprite();
            //sprite.Texture = texture;
            //sprite.SetWidth(Width);
            //sprite.SetHeight(Height);
            //sprite.SetPosition(position.X, position.Y);
            //multiSprite = new MultiSprite(sprite);
            //RecTangleF[] rects = new RecTangleF[8];
            //for (int i = 0; i < 8;i++ )
            //    rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256);
            //multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state
            //multiSprite.State = 0;                   //将状态切换为0号state

            Texture texture = _t.Get("Player2");

            sprite         = new Sprite();
            sprite.Texture = texture;
            sprite.SetWidth(Width);
            sprite.SetHeight(Height);
            sprite.SetPosition(position.X, position.Y);
            multiSprite = new MultiSprite(sprite);

            RecTangleF[] rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256);
            }
            multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
            {
                rects[i] = new RecTangleF(i * 4 * per_256, 6 * per_256,
                                          4 * per_256 + i * 4 * per_256, 12 * per_256);
            }
            multiSprite.RegeditState(1, rects);      //将此rectangleF注册到1号state (过渡移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(12 * per_256 + i * 4 * per_256, 6 * per_256,
                                          12 * per_256 + 4 * per_256 + i * 4 * per_256, 12 * per_256);
            }
            multiSprite.RegeditState(2, rects);      //将此rectangleF注册到2号state (移动)

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
            {
                rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256,
                                          i * 4 * per_256, 12 * per_256);
            }
            multiSprite.RegeditState(3, rects);      //将此rectangleF注册到3号state (过渡移动,右)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
            {
                rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256,
                                          12 * per_256 + i * 4 * per_256, 12 * per_256);
            }
            multiSprite.RegeditState(4, rects);      //将此rectangleF注册到4号state (移动)

            multiSprite.RegeditCollection(1, 2);     //将1号动画连接到2号动画上
            multiSprite.RegeditCollection(3, 4);     //将3号动画连接到4号动画上
            multiSprite.State = 1;                   //将状态切换为1号state
        }
Esempio n. 28
0
        public PlayerOne(TextureManager _t , Renderer renderer)
        {
            this.renderer = renderer;
            Width = 32;
            Height = 48;

            position = new Vector2D(0, 50);

            //Texture texture = _t.Get("Player00");
            //sprite = new Sprite();
            //sprite.Texture = texture;
            //sprite.SetWidth(Width);
            //sprite.SetHeight(Height);
            //sprite.SetPosition(position.X, position.Y);
            //multiSprite = new MultiSprite(sprite);
            //RecTangleF[] rects = new RecTangleF[8];
            //for (int i = 0; i < 8;i++ )
            //    rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256);
            //multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state
            //multiSprite.State = 0;                   //将状态切换为0号state

            Texture texture = _t.Get("Player2");
            sprite = new Sprite();
            sprite.Texture = texture;
            sprite.SetWidth(Width);
            sprite.SetHeight(Height);
            sprite.SetPosition(position.X, position.Y);
            multiSprite = new MultiSprite(sprite);

            RecTangleF[] rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(0 + i * 4 * per_256, 0, 4 * per_256 + i * 4 * per_256, 6 * per_256);
            multiSprite.RegeditState(0, rects);      //将此rectangleF注册到0号state

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
                rects[i] = new RecTangleF( i * 4 * per_256, 6 * per_256,
                    4 * per_256 + i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(1, rects);      //将此rectangleF注册到1号state (过渡移动)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(12*per_256 + i * 4 * per_256, 6*per_256,
                   12*per_256+ 4 * per_256 + i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(2, rects);      //将此rectangleF注册到2号state (移动)

            rects = new RecTangleF[3];
            for (int i = 0; i < 3; i++)
                rects[i] = new RecTangleF(4 * per_256 + i * 4 * per_256, 6 * per_256,
                   i * 4 * per_256, 12 * per_256);
            multiSprite.RegeditState(3, rects);      //将此rectangleF注册到3号state (过渡移动,右)

            rects = new RecTangleF[4];
            for (int i = 0; i < 4; i++)
                rects[i] = new RecTangleF(12 * per_256 + 4 * per_256 + i * 4 * per_256, 6 * per_256,
                12 * per_256 + i * 4 * per_256 , 12 * per_256);
            multiSprite.RegeditState(4, rects);      //将此rectangleF注册到4号state (移动)

            multiSprite.RegeditCollection(1, 2);     //将1号动画连接到2号动画上
            multiSprite.RegeditCollection(3, 4);     //将3号动画连接到4号动画上
            multiSprite.State = 1;                   //将状态切换为1号state
        }
Esempio n. 29
0
        protected override void LoadContent()
        {
            arial            = Content.Load <SpriteFont>(Fnames.Arial14);
            obj              = Content.Load <SpriteFont>(Fnames.obj);
            arialB           = Content.Load <SpriteFont>(Fnames.MSReferenceSansSerif14B);
            World.Flag.Image = new Sprite(Content);
            World.Flag.Image.LoadTexture(Fnames.Flag);
            World.Flag.Visible = false;

            Vector2 ScaleFactor = new Vector2(210 * ((float)Window.ClientBounds.Width / 1280), 200 * ((float)Window.ClientBounds.Height / 1024));

            panel = new Panel(Game, arial, arialB, Window.ClientBounds);
            panel.UIPanelClick    += new EventHandler <UIPanelEventArgs>(panel_UIPanelClick);
            panel.ObjectIconClick += new EventHandler <ObjectIconsEventArgs>(panel_ObjectIconClick);
            ground         = new Ground(World.Field, cfg.Ground);
            mesh           = new MeshSelection(Game, Fnames.Mesh);
            minimap        = new Minimap(Game, World.Field, new Rectangle(Right - (int)(Right / 5.2), Bottom - (int)(Bottom / 4.55), (int)ScaleFactor.X, (int)ScaleFactor.Y), ground.Tiles);
            minimap.Click += new EventHandler <MinimapMouseEventArgs>(minimap_Click);
            World.Panel    = panel;
            scene          = new Scene(World.Field, panel);

            #region Game.Components

            Game.Components.Clear();
            Game.Components.Add(panel);
            Game.Components.Add(mesh);
            Game.Components.Add(minimap);
            Game.Components.Add(new FPS(Game, Fnames.Arial14, new Vector2(Window.ClientBounds.Width / 2f, 0)));
            Game.Components.Add(new GameCursor(Game, Fnames.Cursor));

            #endregion

            #region Music

            Song fearNotThisNight = Content.Load <Song>(Fnames.FearNotThisNight);
            Song windGuideYou     = Content.Load <Song>(Fnames.WindGuideYou);
            Song heritageOfKings  = Content.Load <Song>(Fnames.HeritageOfKings);
            Song stronghold       = Content.Load <Song>(Fnames.Stronghold);
            Song elfish1          = Content.Load <Song>(Fnames.Elfish1);
            Song elfish2          = Content.Load <Song>(Fnames.Elfish2);
            Song elfish3          = Content.Load <Song>(Fnames.Elfish3);

            player.Add(windGuideYou);
            player.Add(fearNotThisNight);
            player.Add(heritageOfKings);
            player.Add(stronghold);
            player.Add(elfish1);
            player.Add(elfish2);
            player.Add(elfish3);

            #endregion

            if (!cfg.MusicIsMuted)
            {
                player.Shuffle();
                if (random.Next(100) == 1)
                {
                    MakeBonus();
                }
                player.Start();
            }

#if true
            for (int i = 0; i < 1000; i++)
            {
                new TStone(random.Next(World.Field.Width), random.Next(World.Field.Height), random.Next(500), MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Stone,
                                                                                                                                       new Vector2(random.Next(World.Field.Width), random.Next(World.Field.Height)), new Vector2(60, 60), new Vector2(1, 2), World.FPS));
                string name = (random.Next(0, 2) == 0) ? Fnames.BigTree : Fnames.SmallTree;
                new TTree(random.Next(World.Field.Width), random.Next(World.Field.Height), i + 50, MultiSprite.CreateSprite(Content, spriteBatch, name,
                                                                                                                            new Vector2(random.Next(World.Field.Width), random.Next(World.Field.Height)), new Vector2(60, 60), new Vector2(3, 1), World.FPS));
            }
            for (int i = 0; i < 1000; i++)
            {
                new TCSwordman(random.Next(World.Field.Width - 36), random.Next(World.Field.Height - 36), 100, 10, 3, Vector2.Zero, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Swordman,
                                                                                                                                                             new Vector2(random.Next(World.Field.Width - 36), random.Next(World.Field.Height - 36)), new Vector2(72, 72), new Vector2(5, 24), World.FPS));
            }

#if false
            for (int i = 0; i < 1000; i++)
            {
                new TEnemy(random.Next(World.Field.Width), random.Next(World.Field.Height), 100, 10, 3, Vector2.Zero, MultiSprite.CreateSprite(Content, spriteBatch, Fnames.Enemy,
                                                                                                                                               new Vector2(random.Next(World.Field.Width), random.Next(World.Field.Height)), new Vector2(30, 30), new Vector2(6, 2), World.FPS));
            }
#endif
#endif

            BuildingRectangleSprite = new Sprite(Content);
            BuildingRectangleSprite.LoadTexture(Fnames.Mesh, Vector2.Zero, Vector2.One);
            BuildingRectangleSprite.Visible = false;
            BuildingRectangle = new BuildingRectangle(BuildingRectangleSprite);
        }
Esempio n. 30
0
        /// <summary>
        /// Загрузка контента (вызывается после Initialize())
        /// </summary>
        protected override void LoadContent()
        {
            backgroundFont = Content.Load <SpriteFont>(Fnames.OldEnglishTextMT);
            bFont          = Content.Load <SpriteFont>(Fnames.ButtonFont);

            #region Buttons

            int start = 300;
            int step  = (cfg.ResolutionHeight == 600) ? 65 : 50;
            int count = 0;

            Button Continue = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.ContinueB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One),
                                         CreateSound3D(Content, Fnames.UIButtonClick),
                                         CreateSound3D(Content, Fnames.UIButtonSelect),
                                         bFont);
            Button New = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.NewB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One),
                                    CreateSound3D(Content, Fnames.UIButtonClick),
                                    CreateSound3D(Content, Fnames.UIButtonSelect),
                                    bFont);
            Button Save = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.SaveB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One),
                                     CreateSound3D(Content, Fnames.UIButtonClick),
                                     CreateSound3D(Content, Fnames.UIButtonSelect),
                                     bFont);
            Button Load = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.LoadB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One),
                                     CreateSound3D(Content, Fnames.UIButtonClick),
                                     CreateSound3D(Content, Fnames.UIButtonSelect),
                                     bFont);
            Button Options = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.OptionsB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One),
                                        CreateSound3D(Content, Fnames.UIButtonClick),
                                        CreateSound3D(Content, Fnames.UIButtonSelect),
                                        bFont);
            Button Credits = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.CreditsB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One),
                                        CreateSound3D(Content, Fnames.UIButtonClick),
                                        CreateSound3D(Content, Fnames.UIButtonSelect),
                                        bFont);
            Button Exit = new Button(MultiSprite.CreateSprite(Content, spriteBatch, Fnames.ExitGlobalB, new Vector2(Window.ClientBounds.Width / 2f - 122, Window.ClientBounds.Height / 1000f * (start + step * count++)), new Vector2(244, 36), Vector2.One),
                                     CreateSound3D(Content, Fnames.UIButtonClick),
                                     CreateSound3D(Content, Fnames.UIButtonSelect),
                                     bFont);
            Continue.Text          = "";
            Continue.Click        += new EventHandler <MouseElementEventArgs>(Continue_Click);
            Continue.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Continue.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);
            Continue.Visible       = isContinue = false;
            continueB              = Continue;

            New.Text          = "";
            New.Click        += new EventHandler <MouseElementEventArgs>(New_Click);
            New.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            New.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Save.Text          = "";
            Save.Click        += new EventHandler <MouseElementEventArgs>(Save_Click);
            Save.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Save.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Load.Text          = "";
            Load.Click        += new EventHandler <MouseElementEventArgs>(Load_Click);
            Load.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Load.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Options.Text          = "";
            Options.Click        += new EventHandler <MouseElementEventArgs>(Options_Click);
            Options.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Options.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Credits.Text          = "";
            Credits.Click        += new EventHandler <MouseElementEventArgs>(Credits_Click);
            Credits.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Credits.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            Exit.Text          = "";
            Exit.Click        += new EventHandler <MouseElementEventArgs>(Exit_Click);
            Exit.MouseMove    += new EventHandler <MouseElementEventArgs>(Button_MouseMove);
            Exit.MouseMoveOut += new EventHandler <MouseElementEventArgs>(Button_MouseMoveOut);

            buttons.Add(Continue);
            buttons.Add(New);
            buttons.Add(Save);
            buttons.Add(Load);
            buttons.Add(Options);
            buttons.Add(Credits);
            buttons.Add(Exit);

            #endregion

            #region Panels

            string text = "Do you really want to exit?";
            exitApplyPanel              = new ApplyPanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 3f, Window.ClientBounds.Height / 3f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f / 2f, 640 * (float)Window.ClientBounds.Height / 1024f / 3f)), text);
            exitApplyPanel.ApplyAction += new Action(() => Game.Exit());
            exitApplyPanel.ExitAction  += new Action(() => exitApplyPanel.Visible = false);
            exitApplyPanel.Enabled     += new EventHandler <EventArgs>(panel_Enabled);
            exitApplyPanel.Disabled    += new EventHandler <EventArgs>(panel_Disabled);

            optionsPanel              = new OptionsPanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 5.2f, Window.ClientBounds.Height / 6.8f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f, 640 * (float)Window.ClientBounds.Height / 1024f)), settings);
            optionsPanel.Enabled     += new EventHandler <EventArgs>(panel_Enabled);
            optionsPanel.Disabled    += new EventHandler <EventArgs>(panel_Disabled);
            optionsPanel.Disabled    += new EventHandler <EventArgs>((object sender, EventArgs e) => settings = (Settings)optionsPanel.ApplyedSettings.Clone());
            optionsPanel.ApplyAction += new Action(() => { if (optionsPanel.ApplyedSettings.MusicIsMuted)
                                                           {
                                                               player.Stop();
                                                           }
                                                           else
                                                           {
                                                               player.Start();
                                                           } });

            text                   = String.Format("{0}\n{1}\n{2}", "Credits: ", "1) Bolshakov Kirill", "http://vk.com/overlordff");
            creditsPanel           = new CreditsPanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 5.2f, Window.ClientBounds.Height / 6.8f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f, 640 * (float)Window.ClientBounds.Height / 1024f)), text);
            creditsPanel.Enabled  += new EventHandler <EventArgs>(panel_Enabled);
            creditsPanel.Disabled += new EventHandler <EventArgs>(panel_Disabled);

            savePanel           = new SavePanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 5.2f, Window.ClientBounds.Height / 6.8f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f, 640 * (float)Window.ClientBounds.Height / 1024f)));
            savePanel.Enabled  += new EventHandler <EventArgs>(panel_Enabled);
            savePanel.Disabled += new EventHandler <EventArgs>(panel_Disabled);

            loadPanel           = new LoadPanel(this, Content, Sprite.CreateSprite(Content, Fnames.Panel, new Vector2(Window.ClientBounds.Width / 5.2f, Window.ClientBounds.Height / 6.8f), new Vector2(780 * (float)Window.ClientBounds.Width / 1280f, 640 * (float)Window.ClientBounds.Height / 1024f)));
            loadPanel.Enabled  += new EventHandler <EventArgs>(panel_Enabled);
            loadPanel.Disabled += new EventHandler <EventArgs>(panel_Disabled);

            #endregion

            Song deathSong = Content.Load <Song>(Fnames.DeathSong);
            Song epicScore = Content.Load <Song>(Fnames.EpicScore);

            if (random.NextDouble() >= 0.5)
            {
                background = Content.Load <Texture2D>(Fnames.BackgroundSword);
                player.Add(deathSong);
                optionsPanel.Color   = new Color(70, 70, 255);
                creditsPanel.Color   = new Color(70, 70, 255);
                exitApplyPanel.Color = new Color(70, 70, 255);
                savePanel.Color      = new Color(70, 70, 255);
                loadPanel.Color      = new Color(70, 70, 255);
            }
            else
            {
                background = Content.Load <Texture2D>(Fnames.BackgroundKnight);
                player.Add(epicScore);
                optionsPanel.Color   = new Color(174, 160, 75);
                creditsPanel.Color   = new Color(174, 160, 75);
                exitApplyPanel.Color = new Color(174, 160, 75);
                savePanel.Color      = new Color(174, 160, 75);
                loadPanel.Color      = new Color(174, 160, 75);
            }

            Game.Components.Clear();
            Game.Components.Add(new FPS(Game, Fnames.Arial14, new Vector2(Window.ClientBounds.Width / 2f - 25, 0)));
            Game.Components.Add(new GameCursor(Game, Fnames.Cursor));

            Components.Add(exitApplyPanel);
            Components.Add(optionsPanel);
            Components.Add(creditsPanel);
            Components.Add(savePanel);
            Components.Add(loadPanel);
            Components.AddRange(buttons);

            if (!cfg.MusicIsMuted)
            {
                player.Start();
            }
        }