コード例 #1
0
ファイル: SideBar.cs プロジェクト: TadCordle/MrGuyXNA
        public SideBar(Game game)
        {
            sideButton = new Button(true, ">>", 0, 0, 32, Editor.Graphics.PreferredBackBufferHeight);
            hitBox = new Rectangle(0, 0, WIDTH, Editor.Graphics.PreferredBackBufferHeight);
            PageIndex = 0;

            pages = new Page[3];

            // File page
            pages[0] = new Page();

            pages[0].Add(new Button(true, "New", 21, 64));
            pages[0].Add(new Button(true, "Save", 71, 64));
            pages[0].Add(new Button(true, "Load", 132, 64));
            pages[0].Add(new Button(true, "Draw static\n  polygon", 37, 128));
            pages[0].Add(new Button(true, "Done", 74, 185));

            // Tiles page
            pages[1] = new Page();

            string[] files = Directory.GetFiles("Content\\tiles");
            foreach (string f in files)
                Console.WriteLine(f);
            List<string> tiles = new List<string>();
            for (int i = 0; i < files.Length; i++)
                tiles.Add(files[i].Replace(".xnb", "").Split('\\')[files[i].Split('\\').Length - 1]);

            for (int i = 0; i < tiles.Count; i++)
                pages[1].Add(new Button(tiles[i], 24 + (i % 2) * 86, 48 + 90 * (int)(i / 2), 72, 72));

            // Objects page
            pages[2] = new Page();
        }
コード例 #2
0
ファイル: SideBar.cs プロジェクト: TadCordle/MrGuyXNA
            public void Update()
            {
                MouseState mstate = Mouse.GetState();
                Point coordinates = new Point(mstate.X, mstate.Y);
                Button changedButton = null;
                foreach (Button b in buttons)
                {
                    if (b.HitBox.Contains(coordinates))
                    {
                        if (mstate.LeftButton == ButtonState.Pressed)
                        {
                            if (b.State == Button.BState.Hover)
                            {
                                changedButton = b;
                                b.State = Button.BState.Held;
                                selectedButton = b;
                                break;
                            }
                        }
                        else
                        {
                            if (b.State == Button.BState.Held)
                                b.State = Button.BState.Selected;
                            else if (b.State == Button.BState.Idle)
                                b.State = Button.BState.Hover;
                        }
                    }
                    else
                        if (b.State == Button.BState.Hover)
                            b.State = Button.BState.Idle;
                }

                if (changedButton != null)
                {
                    foreach (Button b in buttons)
                    {
                        if (b != changedButton)
                            b.State = Button.BState.Idle;
                    }
                }

                if (totalButtonHeight > Editor.Graphics.PreferredBackBufferHeight)
                {
                    if (Keyboard.GetState().IsKeyUp(Keys.LeftControl))
                    {
                        scrollValue -= Editor.DScroll;
                        if (scrollValue < 0)
                            scrollValue = 0;
                        else if (scrollValue + Editor.Graphics.PreferredBackBufferHeight > totalButtonHeight + 16)
                            scrollValue = totalButtonHeight - Editor.Graphics.PreferredBackBufferHeight + 16;
                        foreach (Button b in buttons)
                            b.Y = b.InitialY - scrollValue;
                    }
                }
            }
コード例 #3
0
ファイル: SideBar.cs プロジェクト: TadCordle/MrGuyXNA
 public void DeselectButton()
 {
     selectedButton.Deselect();
     selectedButton = null;
 }
コード例 #4
0
ファイル: SideBar.cs プロジェクト: TadCordle/MrGuyXNA
 public void SelectPolygonButton()
 {
     // This is a terrible way of doing this and I should be ashamed of myself
     if (buttons.Count >= 4)
     {
         selectedButton = buttons[3];
         buttons[3].State = Button.BState.Selected;
     }
 }
コード例 #5
0
ファイル: SideBar.cs プロジェクト: TadCordle/MrGuyXNA
 public void Add(Button button)
 {
     buttons.Add(button);
     foreach (Button b in buttons)
     {
         if (b.Y + b.Height + 2> totalButtonHeight)
             totalButtonHeight = b.Y + b.Height + 2;
     }
 }