在XNA中检索多点触控数据

时间:2013-12-04 02:39:08

标签: c# xna multi-touch

我在XNA游戏中检索触摸输入时遇到问题。这是我的开始代码:

TouchCollection touchPositions;
List<Vector2> touchReleases = new List<Vector2>();

然后这是我的更新代码:

protected override void Update(GameTime gameTime)
{          
    // Other update logic here

    touchReleases.Clear();
    foreach (TouchLocation tl in touchPositions) 
    {
        if (tl.State == TouchLocationState.Released) 
           touchReleases.Add(tl.Position); 
    }
    base.Update(gameTime);
}

我们的想法是将所有版本加载到Vector2列表中。然后(在绘制代码期间)函数检查释放以执行操作。

编辑:我在Guide.BeginShowMessageBox()循环期间使用foreach对此进行了测试。每次我发布时都会弹出。

bool released = false;
foreach (TouchLocation tl in touchPositions)
{
    // checks to see if the button is being hovered on     
}
foreach (Vector2 tr in touchReleases)
{
    if (PointInArea(tr, new Rectangle((int)position.X, (int)position.Y, buttonimage[0].Width, buttonimage[0].Height))) 
    { 
        released = true; 
        break; 
    }
}
return released;

PointInArea功能会检查Vector2是否在Rectangle中。我知道这个功能正常。

有趣的是按钮响应每4次点击一次的发布。有谁知道这是为什么?

0 个答案:

没有答案