【发布时间】:2012-11-05 15:33:23
【问题描述】:
我创建了一个包含纹理、标题和矩形的 GuiWindow 类,以便我可以绘制纹理和标题。尽管我遇到了一些麻烦,但我一直在尝试使其可拖动。最初我将 GuiWindow 的边界矩形锁定到鼠标位置:
if(bounds.contains(MouseHandle.Update()) && MouseHandle.Pressed()) //checks if the bounds rectangle contains the mouse rectangle and the mouse left button is pressed
{
bounds.X = MouseHandle.Update().X;
bounds.Y = MouseHandle.Update().Y;
}
这将允许我拖动,尽管只能在一个方向上。然后我尝试了
if(bounds.contains(MouseHandle.Update()) && MouseHandle.Pressed())
{
int offx = bounds.X - MouseHandle.Update().X;
int offy = bounds.Y - MouseHandle.Update().Y;
bounds.X = MouseHandle.Update().X + offx;
bounds.Y = MouseHandle.Update().Y + offy;
}
这一次,当我尝试拖动时,窗口只是静止不动。我很确定我有下拉的基本概念。我做错了吗?
【问题讨论】:
-
我认为我们需要查看更多处理拖动的代码以帮助您
-
你为什么要调用 MouseHandle.Update() 这么多次?似乎应该只调用一次并存储在变量中。
-
我认为我们需要看到您接受至少 50% 的回答,以鼓励我们从日常生活中抽出时间来回答。