XNA手势的问题

时间:2013-12-22 14:53:25

标签: c# windows-phone-8 xna

我的XNA手势不起作用。我正在尝试创建一个天气应用程序,在刷卡时将拉出7天的预测,并在刷下时将其拉出。左/右手势用于切换页面。我在这做错了什么?我的应用程序在测试时会感到困惑,并且有时会认为每个手势都是左/右手势或根本没有手势。为什么它不能检测到我的上/下手势,为什么左/右手势不准确呢?

注意:GestureText.Text仅用于调试。

public MainPage()
{
    InitializeComponent();
    TouchPanel.EnabledGestures = GestureType.VerticalDrag | GestureType.HorizontalDrag;
}

private void gestures(object sender, ManipulationCompletedEventArgs e)
{
    while (TouchPanel.IsGestureAvailable)
    {
        GestureSample gesture = TouchPanel.ReadGesture();
        switch (gesture.GestureType)
        {
            case GestureType.HorizontalDrag:
                float a = gesture.Delta.X;
                int b = (int)a;
                if (b > 0)
                {
                    gestureText.Text = "Left";
                }
                if (b < 0)
                {
                    gestureText.Text = "Right";
                }
                break;
            case GestureType.VerticalDrag:
                float c = gesture.Delta.X;
                int d = (int)c;
                if (d > 0)
                {
                    gestureText.Text = "Up";
                }
                if (d < 0)
                {
                    gestureText.Text = "Down";
                }
            break;
        }
    }

2 个答案:

答案 0 :(得分:1)

我的建议是避免使用Gestures。它们有太多问题,解决此问题的最佳方法是使用TouchCollection编写自己的手势

答案 1 :(得分:0)

由于您在使用gesture.Delta.X时使用gesture.Delta.Y,因此您的上/下手势未被注意到。 VerticalDrag手势未检测到水平变化。

上/下检测的条件应该与Vector2.Zero位于左上角的方式相反