我正在开发一个游戏,如果两个对象(两个图片框的形状)发生碰撞,用户将丧生。但是,我不确定如何使用if-else或switch case语句来确定它们何时发生冲突。我尝试使用它,但它似乎并不多,因此,当一个图片框的位置与另一个图片框的位置完全相同时,它会做一些事情。这仅是在这部分使用条件语句的实践,因此它没有做很多事情:

if(pictureBox1.Location == pictureBox2.Location)
            {
                pictureBox1.Location = new Point(pictureBox1.Left - 10);
            }

最佳答案

创建Rectangle并检查交叉点:

var rect1 = new System.Drawing.Rectangle(pictureBox1.Location, pictureBox1.Size);
var rect2 = new System.Drawing.Rectangle(pictureBox2.Location, pictureBox2.Size);

if (rect1.IntersectsWith(rect2))
{
    // Here is your collision.
}

07-26 08:39