1

你怎么能同时读两个手势。我目前正在开发一个游戏,其中两个玩家应该使用 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
        }
    }
}
4

2 回答 2

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;
    }
}
于 2012-04-20T15:55:16.917 回答
0

你不能,FreeDrag不是多点触控手势,你应该尝试使用TouchLocationTouchCollection可以让你检测到多点触控。不幸的是,你不能使用你在TouchPanel.EnabledGestures.

于 2013-12-13T02:11:56.997 回答