使用c#XNA 4.0检查带有矩形的碰撞圆

时间:2011-12-27 14:48:51

标签: c# xna collision-detection

就像在标题中我试图用XNA检查带有矩形的碰撞圆圈。

但不知道如何检查它。

我发现了类似tutorial

的内容

但我想知道XNA中我的问题是否有任何解决方案?

我附上图片,显示我正在尝试检查是否有人不休息 What I'm trying to do

修改 我正在为移动Windows Phone 7制作游戏。它不应该过多地过载CPU。

感谢您提前:)

2 个答案:

答案 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));
    }