0

我确定我已经读过有一种方法可以在 Touch with Xna 上获取坐标。但它不是真正的 UIE,它是纹理在形状中绘制。
目前我让他们像这样移动:

void update()
  TouchPanelCapabilities touchCap = TouchPanel.GetCapabilities();            
            if (touchCap.IsConnected)
            {
                TouchCollection touches = TouchPanel.GetState();
                if (touches.Count >= 1)
                {
                    Vector2 PositionTouch = touches[0].Position;
                    Position.X = PositionTouch.X - (t_Sprite.Width / 2);
                    Position.Y = PositionTouch.Y - (t_Sprite.Height / 2);
                }
           } 

这是我DragableObject班级的方法。我有不同DragableObject的,我的问题是当我移动一个元素时,所有其他元素也会移动。有人帮忙吗?

4

1 回答 1

0

我最终做了什么并且暂时“起作用”了。但不知道这是否是以后实施碰撞的好方法。

public void Update(GameTime gametime)
{
    Currentposition = Station.Position;

    TouchPanelCapabilities touchCap = TouchPanel.GetCapabilities();
    if (touchCap.IsConnected)
    {
        TouchCollection touches = TouchPanel.GetState();
        if (touches.Count >= 1)
        {
            Vector2 PositionTouch = touches[0].Position;
            for (int i = 0; i < ListDragObj.Count(); i++)
            {
                if (ListDragObj[i].Shape.Contains((int)PositionTouch.X, (int)PositionTouch.Y))
                {
                    ListDragObj[i].selected = true;
                }
                else
                {
                    ListDragObj[i].selected = false;
                }
                ListDragObj[i].Update(PositionTouch);
            }
        }
    } 
}
于 2013-10-25T11:56:15.663 回答