我的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;
}
}
答案 0 :(得分:1)
我的建议是避免使用Gestures
。它们有太多问题,解决此问题的最佳方法是使用TouchCollection编写自己的手势
答案 1 :(得分:0)
由于您在使用gesture.Delta.X
时使用gesture.Delta.Y
,因此您的上/下手势未被注意到。 VerticalDrag
手势未检测到水平变化。
上/下检测的条件应该与Vector2.Zero
位于左上角的方式相反