C# SharpDX如何在游戏屏幕上获得鼠标位置

C# SharpDX如何在游戏屏幕上获得鼠标位置,c#,sharpdx,C#,Sharpdx,我正在学习SharpDX,但在学习DirectInput中的MouseManager类和Mouse类时发现了一个问题。 我不知道如何获取鼠标位置,这对我来说很重要,因为我在游戏中添加了按钮。我看到了文档,但在这里没有找到任何帮助。我假设您正在使用渲染器显示游戏。如果是这种情况,您可以像使用windows窗体一样订阅鼠标事件: int x; int y; // form is RenderForm form.MouseMove += (sender, args) => { x = a

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

我假设您正在使用渲染器显示游戏。如果是这种情况,您可以像使用windows窗体一样订阅鼠标事件:

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

SharpDX中的鼠标位置在[0,1]范围内。我还有一个平铺贴图编辑器

我需要稳定它,但你可以检查代码。 使用不带工具箱的DX11

无论如何

只需将X,Y值乘以宽度/高度即可


别担心,这也把我甩了

我之所以使用Game类,是因为Game类包含更新和绘制方法@Jens NolteI需要知道如何通过获取鼠标位置来解决此问题,因为我在SharpDX中制作了一个简单的平铺贴图编辑器,但由于鼠标问题,每个函数都带有键盘:/I没有使用工具箱,但这个示例似乎包含了您需要的所有内容:基本上,您希望在初始化期间创建一个新的MouseManager实例,并在更新期间使用GetState方法来获取鼠标数据。GetState方法中的MousePosition仅返回Delta position::那么,如果要为按钮创建悬停状态,我该怎么办?@Rasd是你的项目托管在某个地方,我可以看一下。您所需要的只是基本的碰撞检测和一个小型的状态管理器