就像在标题中我试图用XNA检查带有矩形的碰撞圆圈。
但不知道如何检查它。
我发现了类似tutorial
的内容但我想知道XNA中我的问题是否有任何解决方案?
我附上图片,显示我正在尝试检查是否有人不休息
修改 我正在为移动Windows Phone 7制作游戏。它不应该过多地过载CPU。
感谢您提前:)
答案 0 :(得分:2)
以下是对类似问题的回答:Circle-Rectangle collision solution。
作为参考,这是Moving Collision Detection上的一个帖子,其中有一个来自Griptonite Games的程序员(Mike0801)。可能值得一读他对数学的看法。他们为像Gameboy这样的低功耗机器制作游戏,所以他很快就能做到这一点。
答案 1 :(得分:0)
XNA中有一个更简单的解决方案" Platformer"演示;
public bool Intersects(Rectangle rectangle)
{
Vector2 v = new Vector2(MathHelper.Clamp(Center.X, rectangle.Left, rectangle.Right),
MathHelper.Clamp(Center.Y, rectangle.Top, rectangle.Bottom));
Vector2 direction = Center - v;
float distanceSquared = direction.LengthSquared();
return ((distanceSquared > 0) && (distanceSquared < Radius * Radius));
}