【问题标题】:SharpDX how to get mouse Position on the gameScreenSharpDX如何在游戏屏幕上获取鼠标位置
【发布时间】:2015-07-11 16:44:53
【问题描述】:

我正在学习 SharpDX,但是在学习 DirectInput 中的 MouseManager 类和 Mouse 类时发现了一个问题。 我不知道如何获取对我来说很重要的 mousePosition,因为我在游戏中添加了按钮。我查看了文档,但在这里没有找到任何帮助。

【问题讨论】:

    标签: c# sharpdx


    【解决方案1】:

    我假设您使用RenderForm 来展示您的游戏。如果是这种情况,您可以像使用 Windows 窗体一样订阅鼠标事件:

    int x;
    int y;
    // form is RenderForm
    form.MouseMove += (sender, args) => {
        x = args.X;
        y = args.Y;
    };
    

    【讨论】:

    • 我正在使用 Game 类,因为 Game 类包含 Update 和 Draw 方法 @Jens Nolte
    • 我需要知道如何通过获取鼠标位置来解决这个问题,因为我在 SharpDX 中制作了一个简单的平铺地图编辑器,但是由于这个鼠标问题,每个功能都使用键盘:/
    • 我没用过这个工具包,但是这个示例似乎包含了你需要的一切:github.com/sharpdx/Toolkit/blob/master/Source/VisualStudio/…
    • 基本上你想在初始化过程中创建一个MouseManager 的新实例,并在你的Update 过程中使用GetState()-方法来获取鼠标数据。
    • GetState() 方法中的MousePosition 仅返回增量位置:/
    【解决方案2】:

    SharpDX 中的鼠标位置在 [0,1] 范围内。我也有一个瓷砖地图编辑器。

    我需要稳定它,但您可以查看代码here。 (使用没有工具包的DX11)

    无论如何

    只需将 X、Y 值乘以宽度/高度。

    别担心,这也让我失望了。

    【讨论】:

    • 如果我想为按钮设置悬停状态该怎么办?
    • @Rasd 是您的项目托管在某个地方,我可以看看。您所需要的只是基本的碰撞检测和一个小型状态管理器
    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多