检查鼠标悬停在某点周围的某个半径

时间:2012-12-22 20:52:59

标签: c# forms

我正在通过C#形式创建类似FPS的游戏。 这是我写的第一款游戏,所以请放轻松:p 无论如何,主要的想法是程序会识别用户的光标何时悬停在角色上。 现在让我们说角色的坐标是(X,Y),我想检查光标是否在......范围内。 为了检查这一点,我可以使用用于循环的两个条件,但我相信有更好的方法来检查它,我只是不知道它。 如果你误解了我的意图,请在这里发帖,我会尽力澄清。谢谢

1 个答案:

答案 0 :(得分:3)

您不需要for循环。
假设鼠标坐标为(m_x,m_y),而char坐标为(x,y) 如果距离小于10,则将距离计算为sqrt((m_x-x)*(m_x-x)+(m_y-y)*(m_y-y)),然后鼠标在范围内。

为了更好的运行时间,请避免使用sqrt,即

  

if(((m_x-x)*(m_x-x)+(m_y-y)*(m_y-y)< 100)
    //在范围内     否则
     //外范围