2013-12-22 5 views
1

Мои жесты XNA не работают. Я пытаюсь создать приложение погоды, которое подталкивает 7-дневный прогноз, когда он подталкивается, и вытаскивает его, когда его вытаскивают. Жесты влево/вправо предназначены для переключения страниц. Что я здесь делаю неправильно? Мое приложение, когда оно проверено, запутывается и думает, что каждый жест - это левый/правый или вообще не жестом. Почему он не обнаружит мои жесты вверх/вниз, и почему левые/правые настолько неточны?Проблемы с XNA Gestures

Примечание: 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; 
     } 
    } 
+0

Вы пытались удалить 'HorizontalDrag' и посмотреть, если ваша игра обнаруживает' VerticalDrag'? – pinckerman

+0

Написал мои собственные жесты, как показано ниже. Работайте отлично и решили. – Kevin

+0

Yap, полностью согласен. – pinckerman

ответ

1

Мое предложение будет избегать использования Gestures вообще. Есть слишком много проблем с ними, и лучшим способом решить этот вопрос, чтобы написать свои собственные жесты, используя TouchCollection

0

ваших вверх/вниз жестов не замеченным, так как вы используете gesture.Delta.X, когда вы должны были с помощью gesture.Delta.Y , Жест VerticalDrag не обнаруживает горизонтальные изменения.

также условия вверх/вниз обнаружения должно быть противоположным образом, как Vector2.Zero находится в верхнем левом углу

Смежные вопросы