我在开发Windows手机应用程序时遇到了麻烦。这是一款游戏,我正在使用XNA。
这是导航页面之一:
问题是左上角的“后退”按钮位于此页面之前的页面上。因此,当我点击后退按钮时,它不会将我引导到上一页而是引导到第一页。 (有时如果我点击快速,它会引导我前一个)。因为它有时工作,我认为错误不是来自我的代码。我认为由于back_button在两个页面上都处于同一位置,因此更新速度太快而且“touch_event”可能会停留太长时间。我不知道如何解决这个问题 有点按钮点击按钮:
TouchPanelCapabilities touchCap = TouchPanel.GetCapabilities();
if (touchCap.IsConnected)
{
TouchCollection touches = TouchPanel.GetState();
if (touches.Count >= 1)
{
Vector2 PositionTouch = touches[0].Position;
return (Mouseclik((int)PositionTouch.X, (int)PositionTouch.Y));
}
}
return (Screen.ChooseLevelScreen);
答案 0 :(得分:1)
你需要这样的东西:
if (touches.Count >= 1)
if (touches[0].State == TouchLocationState.Released)
{
Vector2 PositionTouch = touches[0].Position;
return (Mouseclik((int)PositionTouch.X, (int)PositionTouch.Y));
}
通常情况下,当您松开触摸时会检测到点按,而不是在您按下触摸时,这样您就可以确定只检测到一次。
答案 1 :(得分:0)
轮询释放手指而不是点击。这样,当您从触摸按钮上移开手指时,它只会被注册一次而不是手指仍然在按钮上的x次,并且循环被执行。
见<{1}}
TouchLocationState.Released
答案 2 :(得分:0)
您需要TouchLocationState.Released
http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.input.touch.touchlocationstate.aspx