コード例 #1
0
ファイル: Game1.cs プロジェクト: optiklab/BugsInSpaceGame
        /// <summary>
        /// Constructor.
        /// </summary>
        public Game1()
        {
            _graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";

            _graphics.PreferredBackBufferWidth = 1024;
            _graphics.PreferredBackBufferHeight = 768;
            _graphics.PreferMultiSampling = false;
            _graphics.IsFullScreen = false;

            _controller = new GameController(Window);

            _menu = new Menu();

            _mouseCursor = new MouseCursor();

            _hitList = new HitsList();
            _userInput = new UserInput();
        }
コード例 #2
0
 private bool _IsMousePositionChanged(MouseCursor mouseCursor)
 {
     return(mouseCursor.MouseBox.Max != _latestCursorBox.Max ||
            mouseCursor.MouseBox.Min != _latestCursorBox.Min);
 }
コード例 #3
0
ファイル: Menu.cs プロジェクト: optiklab/BugsInSpaceGame
 private bool _IsMousePositionChanged(MouseCursor mouseCursor)
 {
     return (mouseCursor.MouseBox.Max != _latestCursorBox.Max ||
         mouseCursor.MouseBox.Min != _latestCursorBox.Min);
 }
コード例 #4
0
ファイル: Menu.cs プロジェクト: optiklab/BugsInSpaceGame
        /// <summary>
        /// 
        /// </summary>
        public void Update(KeyboardState keyboardState, MouseCursor mouseCursor)
        {
            //
            foreach (var item in _items)
            {
                BoundingBox box = new BoundingBox();
                box.Min = new Vector3(item.ItemPosition.X, item.ItemPosition.Y, 0);
                box.Max = new Vector3(item.ItemPosition.X + item.ItemTexture.Width,
                    item.ItemPosition.Y + item.ItemTexture.Height, 0);
                item.Box = box;
            }

            // Check mouse
            int index = GetMenuItemIntersectedByMouse(mouseCursor);
            if (index != -1 && _IsMousePositionChanged(mouseCursor))
            {
                SelectedItem = index;
                _latestCursorBox = mouseCursor.MouseBox;
                return;
            }

            // Check keyboard
            if (keyboardState.IsKeyDown(Keys.Up) && SelectedItem > 0 && _releasedUp)
            {
                --SelectedItem;
            }
            else if (keyboardState.IsKeyDown(Keys.Down) &&
                SelectedItem < _items.Length - 1 &&
                _releasedDown)
            {
                ++SelectedItem;
            }

            _releasedDown = keyboardState.IsKeyUp(Keys.Down);
            _releasedUp = keyboardState.IsKeyUp(Keys.Up);
        }
コード例 #5
0
ファイル: Menu.cs プロジェクト: optiklab/BugsInSpaceGame
        /// <summary>
        /// 
        /// </summary>
        /// <param name="mouseCursor"></param>
        /// <returns></returns>
        public int GetVolumeItemIntersectedByMouse(MouseCursor mouseCursor)
        {
            for (int i = 0; i < _volumeControl.Boxes.Length; i++)
            {
                if (_volumeControl.Boxes[i].Intersects(mouseCursor.CenterBox))
                {
                    return i;
                }
            }

            return -1;
        }
コード例 #6
0
ファイル: Menu.cs プロジェクト: optiklab/BugsInSpaceGame
        /// <summary>
        /// 
        /// </summary>
        /// <param name="mouseCursor"></param>
        /// <returns></returns>
        public int GetMenuItemIntersectedByMouse(MouseCursor mouseCursor)
        {
            for (int i = 0; i < _items.Length; i++)
            {
                if (_items[i].Box.Intersects(mouseCursor.MouseBox))
                {
                    return i;
                }
            }

            return -1;
        }