获取屏幕多点触摸的所有Touch:
TouchCollection touchLocations = TouchPanel.GetState();
foreach (TouchLocation touchLocation in touchLocations)
{
if (touchLocation.State == TouchLocationState.Pressed){}
if (touchLocation.State == TouchLocationState.Moved){}
if (touchLocation.State == TouchLocationState.Released){}
}
获取上一时刻的TouchLocation
TouchLocation previousTouchLocation; bool success = touchLocation.TryGetPreviousLocation(out previousTouchLocation);
TouchLocation的对象拥有Position属性,提供一个相对于屏幕的Vector2对象
-------------------------------------------------------------------------------------------------
设置可用的手势:
TouchPanel.EnabledGestures = GestureType.Tap;
获取手势并处理:
while (TouchPanel.IsGestureAvailable)
{
GestureSample gestureSample = TouchPanel.ReadGesture();
if (gestureSample.GestureType == GestureType.Tap){}
}
GestureSample的对象拥有Position属性,提供一个相对于屏幕的Vector2对象
XNA支持的手势
Tap:手指单击
DoubleTap:手指双击
Hold:手指碰触并固定一段时间
FreeDrag:自由移动手指
VerticalDrag:上下移动手指
HorizontalDrag:左右移动手指
DragComplete:移动结束
Flick:滑过(手指抬起时不停止)
Pinch:缩小和延伸
PinchComplete:缩小和延伸结束