触摸方法更新对于循环游戏来说太快了

时间:2013-11-06 11:04:01

标签: c# windows-phone-7 xna

我在开发Windows手机应用程序时遇到了麻烦。这是一款游戏,我正在使用XNA。

这是导航页面之一:

navigation page

问题是左上角的“后退”按钮位于此页面之前的页面上。因此,当我点击后退按钮时,它不会将我引导到上一页而是引导到第一页。 (有时如果我点击快速,它会引导我前一个)。因为它有时工作,我认为错误不是来自我的代码。我认为由于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);

3 个答案:

答案 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)