鼠标状态在我的项目中突然爆发。

时间:2015-07-18 12:09:45

标签: c# xna mouse monogame

这是有史以来最不寻常的错误!

我正在使用 XNA(Monogame)并使用以下代码获取鼠标状态:

Mousestate ms = Mouse.GetState();

然后我可以使用以下内容检查点击次数

if(ms.RightButton == ButtonState.Pressed)
{
}

或者通过设置上一个滚动变量检查滚动并将其与当前滚动进行比较。

一切都运行良好,直到我今天在我的系统上工作,我测试了它,并且所有鼠标交互都停止了工作。但键盘状态确实有效。

我认为可能是因为它没有被调用或没有被检查。

所以我放置这是我的工作更新方法。

        if (ms.LeftButton == ButtonState.Pressed)
        {
            throw new NullRefrenceException(); 
        } 

我试过左键点击,什么都没发生。通过删除if语句确保它不是别的东西,并且确实它确实扔了它。

因此,在绝望之后,我创建了一个 Windows Mono-game Proj 并将相同的代码放入更新方法中。

我点击了鼠标左键,错误确定无误。

我试过注释掉每一行代码都有ms / mouseState / Mouse。只留下一个,但无济于事。

我会创建一个Minimal, Complete, and Verifiable Example,但我的项目非常大,我已经在超过30个类中声明了鼠标状态。

我尝试重新启动计算机,重新启动visual-studio,结束所有vs / vs-host进程,使用不同的鼠标和大量代码进行调整。

当我尝试在鼠标状态附近使用断点时,不会抛出任何错误,它不会设置为null。

如果此问题需要进一步的信息,请说明。

1 个答案:

答案 0 :(得分:0)

好。如果你初始化Game1。

Game1 g1 = new Game1();

它会破坏mouseState。

如果一个类扩展:Microsoft.Xna.Framework.Game

并使用其方法。如果再次初始化它将会中断。

不应该初始化Game1。