C#使一个图片框运行远离另一个图片框
C# make a picturebox run away from another picturebox
好的,所以我正在研究"mini-game":你是一只猫,你需要抓住一只老鼠。我正在尝试使鼠标(图片框)运行 远离猫(图片框)如果猫离鼠标的距离小于 10 像素(或 15 或其他),则鼠标开始 运行 另一个方向。如果猫离得不是那么近,那么老鼠就呆在原地。
我可以选择无论猫在哪里,鼠标都会 运行 向相反的方向移动,但我希望它只在猫靠近 10 像素时移动,我不能那样做,我不不知道怎么办。我尝试了一些选项,但没有用。
你可以帮帮我吗?或者给点提示?谢谢。
您可以使用 Pythagorean theorem 轻松计算两个位置之间的距离。当鼠标有坐标[x1,y1]
和猫[x2,y2]
时,你可以很容易地检查
if ( ( ( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ) ) <= ( 10 * 10 ) )
{
//closer than 10px
}
在这里,我在对角线上取了 10px。与 100 进行比较,因为计算平方根是一项计算量大的操作,因此比较不等式的平方边要容易得多。
好的,所以我正在研究"mini-game":你是一只猫,你需要抓住一只老鼠。我正在尝试使鼠标(图片框)运行 远离猫(图片框)如果猫离鼠标的距离小于 10 像素(或 15 或其他),则鼠标开始 运行 另一个方向。如果猫离得不是那么近,那么老鼠就呆在原地。 我可以选择无论猫在哪里,鼠标都会 运行 向相反的方向移动,但我希望它只在猫靠近 10 像素时移动,我不能那样做,我不不知道怎么办。我尝试了一些选项,但没有用。 你可以帮帮我吗?或者给点提示?谢谢。
您可以使用 Pythagorean theorem 轻松计算两个位置之间的距离。当鼠标有坐标[x1,y1]
和猫[x2,y2]
时,你可以很容易地检查
if ( ( ( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ) ) <= ( 10 * 10 ) )
{
//closer than 10px
}
在这里,我在对角线上取了 10px。与 100 进行比较,因为计算平方根是一项计算量大的操作,因此比较不等式的平方边要容易得多。