source: 2011/23/sijoseha/AdventureGame/AdventureGame/Button.cs @ 1727

Revision 1727, 2.0 KB checked in by tekrjant, 9 years ago (diff)

Added wannabe adventure game made with XNA

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Microsoft.Xna.Framework;
6using Microsoft.Xna.Framework.Graphics;
7
8
9namespace AdventureGame
10{
11    public class Button
12    {
13        public Vector2 Position { get { return new Vector2(Boundaries.X, Boundaries.Y); } set { } }
14        public Rectangle Boundaries { get; set; }
15        public int Width { get { return Boundaries.Width; } private set { } }
16        public int Height { get { return Boundaries.Height; } private set { } }
17        private Texture2D Image { get; set; }
18        public Color BackgroundColor { get; set; }
19        public Color BorderColor { get; set; }
20        public string ButtonText { get; set; }
21
22        public Button(Rectangle boundaries, string text, Color bgColor, Color borderColor, GraphicsDevice device)
23        {
24            this.Boundaries = boundaries;
25            this.ButtonText = text;
26            this.BackgroundColor = bgColor;
27            this.BorderColor = borderColor;
28            Color[,] tex = new Color[this.Width, this.Height];
29            for (int x = 0; x < this.Width; x++)
30            {
31                for (int y = 0; y < this.Height; y++)
32                {
33                    if (x == 0 || y == 0 || x == this.Width || y == this.Height)
34                        tex[x, y] = borderColor;
35                    tex[x, y] = bgColor;
36                }
37            }
38            Color[] tex1D = new Color[this.Width * this.Height];
39            for (int x = 0; x < this.Width; x++)
40                for (int y = 0; y < this.Height; y++)
41                    tex1D[x + y * this.Width] = tex[x, y];
42            this.Image = new Texture2D(device, this.Width, this.Height);
43            this.Image.SetData(tex1D);
44        }
45
46        public void Draw(SpriteBatch sb)
47        {
48            sb.Draw(this.Image, this.Boundaries, Color.White);
49            sb.DrawString(AdventureGame.basicFont, this.ButtonText, this.Position, Color.Black);
50        }
51    }
52}
Note: See TracBrowser for help on using the repository browser.