好吧,所以我似乎无法找到在几个图片框之间进行某种类型的碰撞检测的方法。
https://i.stack.imgur.com/16dKe.png
从上图中可以看出,在我的游戏中,我需要确保所有图片框都不会相互移动。
我能想到这样做的唯一方法是为每个图片框写出一个if语句,检查它是否与其他图片框的边界相交,但这将是相当繁琐和多余的。
所以我做的是这个:
private void Block_MouseMove(object sender, MouseEventArgs e)
{
PictureBox block = sender as PictureBox;
if (block.Bounds.IntersectsWith(block.Bounds))
{
dragging = false;
}
}
正如您所看到的,所有图片框都使用此MouseMove事件处理程序,并且正在移动的当前图片框的属性由变量' block'捕获。所以,我试着用它来检查是否阻止'阻止'与另一个'块相交。但是,这只会检查当前正在移动的阻止'与自身相交(它本身),所以它最终会阻止“块”。从移动。
所以,如果有人可以帮我创建一个图片框即将与另一个图片框碰撞时停止的方式,那将非常有帮助。
提前致谢。
我还想问一下,我如何制作我正在移动的当前图片框'周围的环境?即如果我正在移动一个图片框并且前面有另一个图片框,它应该会自动停止,所以它不会超过它等。