MonogameLinux-MouseState.ScrollWheelValue不变

问题描述

我在Visual Studio中使用MonoGame 3.5创建了一个monogame项目。在Linux上运行它后,mouseState.ScrollWheelValue始终为0,无论我做什么。

这很可能与Linux在鼠标滚轮上具有不同的窗口焦点这一事实有关,但我似乎无法弄清楚。

我到目前为止发现的内容

1。。我应该将Mouse.WindowHandle设置为正确的值(意味着)。 这在很大程度上是有问题的,因为未实现Mouse.WindowHandle setter。另外,将特定窗口注入Mouse对象是一个内部过程。 (来源:https://stackoverflow.com/a/33921015/3455388

2。一个可怜的灵魂3年前在官方的单游戏论坛上问了这个问题,但没有明显的答案(https://community.monogame.net/t/mouse-state-scrollwheelvalue-returns-0-all-the-time/9233

有人知道如何使MonoGame在Linux上接收MouseWheel事件吗?一个完全不受支持的答案也可以。

解决方法

我不知道为什么,但是解决与声音相关的其他问题也解决了鼠标问题。

最初在Linux上运行游戏时,我遇到了声音库Unhandled Exception: System.DllNotFoundException: openal32.dll的第二个问题。我只是禁用了声音并在MouseWheel问题中进行了挖掘。

放弃鼠标问题后,我回过头来修复声音,并发现一个人在谈论/bin/Windows/Debug/文件夹(https://github.com/MonoGame/MonoGame/issues/657)中丢失的文件。

结果是我的MonoGame bin目录仅包含OpenTK.dll,但缺少OpenTK.dll.config。从/usr/lib/mono/xbuild/MonoGame/v3.0/Tools/复制它可以解决声音... 鼠标。我猜测缺少的库可能在正确设置鼠标之前使初始化过程崩溃了。