为什么我的鼠标位置不更新时,按左键

本文关键字:更新 我的 鼠标 位置 为什么 | 更新日期: 2023-09-27 18:17:30

我在MacOS上使用MonoGame 3.6.0.906。我试图得到一些鼠标输入代码工作,但我发现了一些奇怪的行为。当按下左键时,鼠标位置似乎没有更新。这使得无法实现鼠标拖动输入。

为了研究,我添加了打印语句,当鼠标左键被按下时,当它被释放时,鼠标位置每次更新。然后我试着点击和拖动。当按下左键时,鼠标肯定会移动。

日志如下:

...
{X:89 Y:384}
{X:89 Y:385}
{X:90 Y:386}
pressed
released
{X:91 Y:386}
{X:94 Y:386}
{X:96 Y:386}
...

可以看出,当按下左键时,鼠标的位置不会改变。

为什么会这样?这是《一夫一妻》的bug吗?


重要代码:

    MouseState previousMouseState;
    protected override void Update(GameTime gameTime)
    {
        var mouseState = Mouse.GetState();
        if (mouseState.LeftButton == ButtonState.Pressed && 
            previousMouseState.LeftButton == ButtonState.Released)
        {
            Console.WriteLine("pressed");
        }
        if (mouseState.LeftButton == ButtonState.Released && 
            previousMouseState.LeftButton == ButtonState.Pressed)
        {
            Console.WriteLine("released");
        }
        if (mouseState.Position != previousMouseState.Position)
        {
            Console.WriteLine(mouseState.Position);
        }
        previousMouseState = mouseState;
        base.Update(gameTime);
    }

Update我刚刚在MonoMac应用程序中测试了这一点,它工作正常。使用跨平台桌面模板、Xamarin Mac模板和Xamarin Classic模板时出现问题。

为什么我的鼠标位置不更新时,按左键

此问题已在后续版本中修复:https://github.com/MonoGame/MonoGame/issues/5296

相关文章: