C# 获取鼠标移动的距离
我有一个表格,里面有一个小的C# 获取鼠标移动的距离,c#,.net,winforms,mouseevent,mousemove,C#,.net,Winforms,Mouseevent,Mousemove,我有一个表格,里面有一个小的面板,名为Player。如何将面板“链接”到用户的鼠标,使其随鼠标移动而移动 我已经订阅了Player\u MouseMove到Player.MouseMove事件,但我无法计算鼠标实际移动了多少。我能想出的唯一办法就是有这样一个: private Point previousLocation; private void Player_MouseMove(object sender, MouseEventArgs e) { int differenceX,
面板
,名为Player
。如何将面板“链接”到用户的鼠标,使其随鼠标移动而移动
我已经订阅了Player\u MouseMove
到Player.MouseMove
事件,但我无法计算鼠标实际移动了多少。我能想出的唯一办法就是有这样一个:
private Point previousLocation;
private void Player_MouseMove(object sender, MouseEventArgs e)
{
int differenceX, differenceY;
differenceX = e.X - previousLocation.X;
differenceY = e.Y - previousLocation.Y;
previousLocation = e.Location;
}
这看起来很愚蠢,有一个额外的变量,每次都计算差异。完美的方式就像Player.LinkToCursor()代码>之类的,但如果没有自动化的方法,至少还有更好的方法吗?看看我,我看不出有什么能帮助你更好地完成这项工作
但是,您可以做一件事:
Point difference = e.Location - (Size)previousLocation;
向量算术;) “…有一个额外的变量”这不是一个额外的变量,这是一个必需的变量。你必须把它存放在某个地方。这实际上是一种相当标准的方法。我已经制作了相当多的小型2D游戏,“获取当前,与上一个比较,将当前分配给上一个,重复”的循环被用于所有的位置-时间间隔和按钮检测-其他一些常见的。@SteveWellens是的,我希望它已经存储在MouseEventArgs e
中,这会使我的变量无用:)但既然不是,你是对的。我希望找到更有用的东西,但我会这样做:)谢谢你的回答!