Gruppe22.Client.Button.Draw C# (CSharp) Method

Draw() public method

public Draw ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime
return void
        public override void Draw(GameTime gameTime)
        {
            if (!_hidden)
            {
                _spriteBatch.Begin();
                if (IsHit(Mouse.GetState().X, Mouse.GetState().Y))
                {
                    if (_bstat == ButtonStatus.down)
                    {
                        _bstat = ButtonStatus.downon;
                    }
                    else
                        if (_bstat == ButtonStatus.normal)
                        {
                            _bstat = ButtonStatus.mouseon;
                        }
                }
                else
                {
                    if (_bstat == ButtonStatus.downon)
                    {
                        _bstat = ButtonStatus.down;
                    }
                    else if (_bstat == ButtonStatus.mouseon)
                    {
                        _bstat = ButtonStatus.normal;
                    }
                }

                if (_label != "")
                {
                    Vector2 _textPos = _font.MeasureString(_label);
                    switch (_bstat)
                    {
                        case ButtonStatus.down:
                        case ButtonStatus.mouseon:
                        case ButtonStatus.downon:
                            _spriteBatch.Draw(_background, _displayRect, new Rectangle(39, 6, 1, 1), Color.Black);
                            _spriteBatch.Draw(_background, new Rectangle(_displayRect.X + 1, _displayRect.Y + 1, _displayRect.Width - 2, _displayRect.Height - 2), new Rectangle(39, 6, 1, 1), _focus ? Color.Blue : Color.White);
                            _spriteBatch.DrawString(_font, _label, new Vector2(_displayRect.Left + (_displayRect.Width - _textPos.X) / 2, _displayRect.Top + (_displayRect.Height - _textPos.Y) / 2), _focus ? Color.White: Color.Black);
                            break;
                        default:
                            _spriteBatch.Draw(_background, _displayRect, new Rectangle(39, 6, 1, 1), _focus ? Color.Blue : Color.White);
                            _spriteBatch.Draw(_background, new Rectangle(_displayRect.X + 1, _displayRect.Y + 1, _displayRect.Width - 2, _displayRect.Height - 2), new Rectangle(39, 6, 1, 1), _focus ? Color.DarkBlue : Color.Black);
                            _spriteBatch.DrawString(_font, _label, new Vector2(_displayRect.Left + (_displayRect.Width - _textPos.X) / 2, _displayRect.Top + (_displayRect.Height - _textPos.Y) / 2), Color.White);
                            break;
                    }
                }
                else
                {
                    switch (_bstat)
                    {
                        case ButtonStatus.mouseon:
                        case ButtonStatus.down:
                            _spriteBatch.Draw(_buttonStates[1], new Rectangle(_displayRect.X, _displayRect.Y, Math.Min(_displayRect.Width, _buttonStates[1].Width), Math.Min(_displayRect.Height, _buttonStates[1].Height)), new Rectangle(0, 0, _buttonStates[1].Width, _buttonStates[1].Height), Color.White);
                            break;
                        case ButtonStatus.downon:
                        default:
                            _spriteBatch.Draw(_buttonStates[0], new Rectangle(_displayRect.X, _displayRect.Y, Math.Min(_displayRect.Width, _buttonStates[0].Width), Math.Min(_displayRect.Height, _buttonStates[0].Height)), new Rectangle(0, 0, _buttonStates[0].Width, _buttonStates[0].Height), Color.White);
                            break;
                    }
                }

                _spriteBatch.End();
            }
        }