C# 检测图片框何时接触另一个控件

C# 检测图片框何时接触另一个控件,c#,winforms,C#,Winforms,我做了一个游戏,玩家控制一个正方形,每当它碰到墙,它就应该死。广场是一个图片框,墙壁也是图片框。你可以使用W、A、S和D移动。我正在考虑做类似的事情: if(Square.Top == Square.Top + Square.Height) 然后重新开始游戏。有没有更好的办法?我讨厌有很多假设?每当一个控件接触另一个控件以执行某项操作时 非常感谢 是的,通过获取控件的包含矩形,然后与另一个矩形一起使用 if(Square.Bounds.IntersectsWith(Wall.Bounds))

我做了一个游戏,玩家控制一个正方形,每当它碰到墙,它就应该死。广场是一个图片框,墙壁也是图片框。你可以使用W、A、S和D移动。我正在考虑做类似的事情:

if(Square.Top == Square.Top + Square.Height) 
然后重新开始游戏。有没有更好的办法?我讨厌有很多假设?每当一个控件接触另一个控件以执行某项操作时


非常感谢

是的,通过获取控件的包含矩形,然后与另一个矩形一起使用

if(Square.Bounds.IntersectsWith(Wall.Bounds))
{
    // ...
}

请记住,当你的方块碰到一堵墙时,它不会触发,只有当它开始在它上面时才会触发,但我假设这就是你想要的。实际上,
square.top==wall.top
并不表示它们碰到了,除非墙在方块上面。如果墙在正方形的右侧或左侧,则它们不会接触,即使顶部是相同的。这只是一个示例,让我更正一下square。top==wall.square.top+square.HeightCollision detection主要在互联网上的博客上发布。一个快速的搜索给了我这篇文章:但是真的,有很多关于这个主题的博客文章。谢谢佩德罗!我去看看。