Ejemplo n.º 1
0
        private void HandleOptionsMouse(GameTime gameTime, InputManager inputManager)
        {
            if (Transition <= 0)
            {
                return;
            }

            int lineHeight = (int)menuFont.MeasureString("Sample").Y;

            foreach (MenuItem item in menuItems)
            {
                int optionWidth = (int)(item.optionPos.X - item.position.X) + 96;

                Rectangle itemRect = new Rectangle(
                    (int)item.position.X,
                    (int)item.position.Y - lineHeight / 2,
                    optionWidth,
                    lineHeight);

                itemRect.Inflate(32, 0);


                if (itemRect.Contains((int)inputManager.mousePos.X, (int)inputManager.mousePos.Y))
                {
                    if (inputManager.mouseHasMoved)
                    {
                        selectedItem = item;
                    }

                    bool slideLeft  = false;
                    bool slideRight = false;
                    if (item.itemType == MenuItem.menuItemType.slider)
                    {
                        int sliderButtonWidth = sprite.arrow.Width * 2;

                        int itemValueWidth = (int)FrameworkCore.SerifBig.MeasureString(item.optionText).X;

                        if (inputManager.mousePos.X > item.optionPos.X + itemValueWidth)
                        {
                            slideRight = true;
                        }

                        if (inputManager.mousePos.X > item.optionPos.X - sliderButtonWidth &&
                            inputManager.mousePos.X < item.optionPos.X)
                        {
                            slideLeft = true;
                        }
                    }

                    if (inputManager.mouseLeftClick)
                    {
                        if (slideLeft)
                        {
                            item.onSliderDecrease();
                        }
                        else if (slideRight)
                        {
                            item.onSliderIncrease();
                        }
                        else
                        {
                            ActivateItem(inputManager);
                        }
                    }
                }
            }
        }