windows 10 中的 Monogame 鼠标仅在移动后感觉按下
Monogame mouse in windows 10 feels press only after move
我有 monogame (3.4) XAML 应用程序 windows 商店(Win10 上的 VS2012)。在我的游戏的 Update() 中,我调用附加代码来接收触摸事件。在 windows 8/8.1 中,一切正常,但在 windows 10 中,我必须按住按钮并多次移动鼠标才能获得 ButtonState.Pressed - 对于最终用户,这看起来像鼠标不起作用全部。我该如何解决这个错误?
鼠标事件接收码:
MouseState st = Mouse.GetState();
if (st.LeftButton == ButtonState.Pressed)
{
if (prevMouseState == ButtonState.Released)
{
prevMouseValX = st.X;
prevMouseValY = st.Y;
pushEvent(EVT_POINTER_DOWN, (int)(st.X - mScrBiasX), (int)(st.Y - mScrBiasY), 1, 0);
}
else
{
if (Math.Abs(st.X - prevMouseValX) > 2 || Math.Abs(st.Y - prevMouseValY) > 2)
pushEvent(EVT_POINTER_MOVE, (int)(st.X - mScrBiasX), (int)(st.Y - mScrBiasY), 1, 0);
}
prevMouseState = ButtonState.Pressed;
}
if (st.LeftButton == ButtonState.Released)
{
if (prevMouseState == ButtonState.Pressed)
{
pushEvent(EVT_POINTER_UP, (int)(st.X - mScrBiasX), (int)(st.Y - mScrBiasY), 1, 0);
}
prevMouseState = ButtonState.Released;
}
答案是使用 Monogame 的最新开发版本 - 来自源代码 -(并使用 VS2013-2015 构建 win 8.1 二进制文件)
我有 monogame (3.4) XAML 应用程序 windows 商店(Win10 上的 VS2012)。在我的游戏的 Update() 中,我调用附加代码来接收触摸事件。在 windows 8/8.1 中,一切正常,但在 windows 10 中,我必须按住按钮并多次移动鼠标才能获得 ButtonState.Pressed - 对于最终用户,这看起来像鼠标不起作用全部。我该如何解决这个错误?
鼠标事件接收码:
MouseState st = Mouse.GetState();
if (st.LeftButton == ButtonState.Pressed)
{
if (prevMouseState == ButtonState.Released)
{
prevMouseValX = st.X;
prevMouseValY = st.Y;
pushEvent(EVT_POINTER_DOWN, (int)(st.X - mScrBiasX), (int)(st.Y - mScrBiasY), 1, 0);
}
else
{
if (Math.Abs(st.X - prevMouseValX) > 2 || Math.Abs(st.Y - prevMouseValY) > 2)
pushEvent(EVT_POINTER_MOVE, (int)(st.X - mScrBiasX), (int)(st.Y - mScrBiasY), 1, 0);
}
prevMouseState = ButtonState.Pressed;
}
if (st.LeftButton == ButtonState.Released)
{
if (prevMouseState == ButtonState.Pressed)
{
pushEvent(EVT_POINTER_UP, (int)(st.X - mScrBiasX), (int)(st.Y - mScrBiasY), 1, 0);
}
prevMouseState = ButtonState.Released;
}
答案是使用 Monogame 的最新开发版本 - 来自源代码 -(并使用 VS2013-2015 构建 win 8.1 二进制文件)