【问题标题】:How to check if the mouse clicked on a specific area in XNA Framework如何检查鼠标是否单击了 XNA Framework 中的特定区域
【发布时间】:2017-01-24 06:46:04
【问题描述】:

大家好!我无法检查鼠标是否单击了特定的“按钮”。

我首先检查 (MouseState.Leftbutton) 是否被“按下”,然后我检查我想要的区域。

当我单击“按钮”时效果很好,但是如果我单击按钮附近的某个位置,并且我将鼠标拖动到按钮上并按住按钮,它会在我按下按钮时起作用,因为 (mouseState.Leftbutton = Pressed) 并且鼠标在该区域中,两者同时发生。

如何在按下鼠标左键时查看鼠标坐标?

抱歉英语不好:D

【问题讨论】:

    标签: c# xna-4.0


    【解决方案1】:

    我强烈建议您不要使用“按下”(或单击)事件。请改用 MouseDown 和 MouseUp 事件。如果您尝试在“官方”应用程序中使用任何按钮 - 您可以看到它主要是 MouseUp 事件(或不太常见的 MouseDown)

    【讨论】:

    • 因为我不使用 Windows 窗体,所以这不是一个选项。 Xna 中的任何解决方案?
    • 嗯,你可以总是创建它。但是为什么不保存第一次按下的区域并与释放的区域进行比较呢?
    【解决方案2】:
    Mouse.GetState().X 
    Mouse.GetState().Y
    

    这些是鼠标位置的坐标。如果您尝试单击按钮,请遵循此方法。

    让您的按钮坐标为屏幕上的 buttonPostion.X 和 buttonPosition.Y。

    那么,

    MouseState mouseClick = Mouse.GetState();
    if (Mouse.GetState().X == buttonPosition.X && Mouse.GetState().Y == buttonPosition.Y)
        {
        if (mouseClick.LeftButton == ButtonState.Pressed)
        {
            //Your process when the button is pressed
        }
    }
    

    我希望我或多或少地回答了你的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多