0

我正在寻找一种方法来阻止同一类中的其他对象被拖动,当我开始拖动一个对象并将另一个对象悬停时,它也被拖动了......

这是我的主要项目定义,

class DrawableObject 
{
public Rectangle RectObject

public void Update(GameTime gameTime, MouseState ms)
        {
            if ((ButtonState.Pressed == Mouse.GetState().LeftButton))
                if (RectObject.Intersects(new Rectangle(ms.X, ms.Y, 0, 0)))
                    Dragged = true;
            else
                Dragged = false;
                if (Dragged)
                    RectObject = new Rectangle(ms.X - RectObject.Width / 2, ms.Y - RectObject.Height / 2, RectObject.Width, RectObject.Height);               
        }
}

由于我将创建 50 多个此类的实例,因此问题将更加紧迫。

4

1 回答 1

1

您可以在拖动当前对象时保留一个“全局”属性。

然后在接受拖动之前检查每个对象是否还没有被拖动:

public void Update(GameTime gameTime, MouseState ms)
{
    if (currentObject != null && this != currentObject) return;

    if ((ButtonState.Pressed == Mouse.GetState().LeftButton))
    {
        if (RectObject.Intersects(new Rectangle(ms.X, ms.Y, 0, 0)))
        {
            Dragged = true;
            currentObject = this;
        }
    }
    else
    ...
}
于 2013-06-11T20:54:54.100 回答