我正在寻找一种方法来阻止来自同一类的其他对象被拖动,当我开始拖动一个并悬停另一个时,它也被拖动...
这是我的主要项目定义,
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个此类的实例,因此问题会更加严密。
答案 0 :(得分: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
...
}