/// <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(); }
private bool _IsMousePositionChanged(MouseCursor mouseCursor) { return(mouseCursor.MouseBox.Max != _latestCursorBox.Max || mouseCursor.MouseBox.Min != _latestCursorBox.Min); }
private bool _IsMousePositionChanged(MouseCursor mouseCursor) { return (mouseCursor.MouseBox.Max != _latestCursorBox.Max || mouseCursor.MouseBox.Min != _latestCursorBox.Min); }
/// <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); }
/// <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; }
/// <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; }