如何同时阅读两个手势。我目前正在开发一款游戏,其中两名玩家应该使用FreeDrag手势。
现在发生的事情是:
当玩家A开始时,他正在拖动它完美无缺。如果玩家B然后也开始了它的FreeDrag手势,则TouchPanel.ReadGesture();
不会注册它直到玩家A的手势结束。
我使用以下代码:
在Initialize()
TouchPanel.EnabledGestures = GestureType.FreeDrag;
在Update()
if (TouchPanel.IsGestureAvailable)
{
GestureSample touch = TouchPanel.ReadGesture();
if (touch.GestureType == GestureType.FreeDrag)
{
if (touch.Position.Y > GraphicsDevice.Viewport.Height/2)
{
//logic Player A here
}
else
{
//logic Player B there
}
}
}
答案 0 :(得分:0)
您在MSDN文档中有一个示例:
http://msdn.microsoft.com/en-us/library/ff827740.aspx
// get any gestures that are ready.
while (TouchPanel.IsGestureAvailable)
{
GestureSample gs = TouchPanel.ReadGesture();
switch (gs.GestureType)
{
case GestureType.VerticalDrag:
// move the poem screen vertically by the drag delta
// amount.
poem.offset.Y -= gs.Delta.Y;
break;
case GestureType.Flick:
// add velocity to the poem screen (only interested in
// changes to Y velocity).
poem.velocity.Y += gs.Delta.Y;
break;
}
}
答案 1 :(得分:0)
你不能,FreeDrag
不是多点触控手势,你应该尝试使用TouchLocation
和TouchCollection
来检测多点触控。遗憾的是,您无法使用在TouchPanel.EnabledGestures
中声明的默认手势。