C# XNA手势的问题
我的XNA手势不起作用。我正在尝试创建一个天气应用程序,当刷起来的时候,它会拉起一个7天的天气预报,当刷下来的时候,它会拉走。左/右手势用于切换页面。我做错了什么?我的应用程序在测试时会感到困惑,有时会认为每个手势都是左/右手势,或者根本没有手势。为什么它检测不到我的向上/向下手势,为什么左/右手势如此不准确 注意:C# XNA手势的问题,c#,windows-phone-8,xna,C#,Windows Phone 8,Xna,我的XNA手势不起作用。我正在尝试创建一个天气应用程序,当刷起来的时候,它会拉起一个7天的天气预报,当刷下来的时候,它会拉走。左/右手势用于切换页面。我做错了什么?我的应用程序在测试时会感到困惑,有时会认为每个手势都是左/右手势,或者根本没有手势。为什么它检测不到我的向上/向下手势,为什么左/右手势如此不准确 注意:GestureText.Text仅用于调试 public MainPage() { InitializeComponent(); TouchPanel.Enabled
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;
}
}
public主页()
{
初始化组件();
TouchPanel.EnabledGestures=GestureType.VerticalDrag | GestureType.HorizontalDrag;
}
私有无效手势(对象发送者,操纵完成事件参数)
{
while(TouchPanel.IsGestureAvailable)
{
GestureSample手势=TouchPanel.Read手势();
开关(手势.手势类型)
{
案例GestureType.HorizontalDrag:
浮点a=手势.Delta.X;
int b=(int)a;
如果(b>0)
{
Text=“Left”;
}
if(b<0)
{
gestureText.Text=“右”;
}
打破
案例GestureType.VerticalDrag:
float c=手势Delta.X;
int d=(int)c;
如果(d>0)
{
gestureText.Text=“向上”;
}
if(d<0)
{
gestureText.Text=“向下”;
}
打破
}
}
我的建议是完全避免使用手势。这些手势有太多问题,解决这个问题的最好方法是使用编写自己的手势。你的上/下手势没有引起注意,因为你在使用手势.Delta.X
而你本应该使用手势.Delta.Y
垂直拖动
手势检测不到水平变化
此外,向上/向下检测的条件应与向量2相反。零位于左上角您是否尝试删除水平拖动
,并查看您的游戏是否检测垂直拖动?按照下面的建议编写了我自己的手势。工作很好,问题解决了。