我做了一个碰撞检测功能:
private bool collision()
{
foreach (Control c in this.Controls)
{
if (c.Bounds.IntersectsWith(player.Bounds))
{
if(c.Name == "")
{
return false;
}
return true;
}
}
return false;
}
然而,它的工作原理是“播放器”PictureBox(设置为自动调整大小,精灵是精确的大小:没有外围的透明像素)与TextBox发生碰撞,同时距离它很远。有办法解决这个问题吗?
答案 0 :(得分:0)
从两个控件边界(与父控件相关),推导出屏幕边界然后计算交集:
Rectangle BoundsInScreenCoor =
new Rectangle(c.PointToScreen(new Point(c.Left,c.Top),new Size(c.Width,c.Height)) ;