答案 0 :(得分:0)
一种实现方法是添加对象并在移动时根据鼠标的坐标更改其位置。进行更多调整并将位置移动居中将使位置更改更平滑。这是一个示例(在C#中):
例如,您有一个对象类。
public class Object {
string _name;
int sizeX;
int sizeY;
int locationX;
int locationY;
public Object(string name) {
locationX = 0;
locationY = 0;
switch(name) {
case "chair":
_name = name;
sizeX = 50; //Predifined width of the chair object
sizeY = 70; //Predifined height of the chair object
case ... //Continue with the process
}
}
public void setLocation(int x, int y) {
locationX = x;
locationY = y;
}
}
所以,现在您可以进入主要表格了。
public void moveObject() {
Point coordinates = GetMouseCoordinates(); //There are a lot of ways.
chair.setLocation(coordinates.X, coordinates.Y);
}
要使运动更平稳,请执行以下操作:
public void moveObject() {
MouseCoordinates coordinates = GetMouseCoordinates(); //There are a lot of ways.
chair.locationY = coordinates.Y + chair.sizeY / 2;
chair.locationX = coordinates.X + chair.sizeX / 2;
}
这实际上是最简单的方法。有许多方法可以在 WinForm 上制作可拖动对象。但是,如果要制作AutoCAD,2D Animators等,则需要创建一个坐标/网格系统,这确实很容易。您只需要创建类并使用面向对象编程(OOP)的概念即可。