Проверка круга столкновения с прямоугольником с помощью c # XNA 4.0 - PullRequest
1 голос
/ 27 декабря 2011

Как и в заголовке, я пытаюсь проверить круг столкновения с прямоугольником с помощью XNA.

Но понятия не имею, как это просто проверить.

Я нашел что-то вроде этого учебник

но мне интересно, есть ли какое-нибудь решение для моей проблемы в XNA?

Я прилагаю изображение, на котором показано, что я пытаюсь проверить, если кто-то не хочет What I'm trying to do

EDIT: Я делаю игру для Mobile Windows Phone 7. Она не должна слишком перегружать процессор.

Спасибо за продвижение:)

Ответы [ 2 ]

2 голосов
/ 28 декабря 2011

Вот ответ на аналогичный вопрос: Решение столкновения Круг-Прямоугольник .

Для справки, вот ветка Обнаружение движущегося столкновения с программистом из Гриптонитовые игры (Mike0801).Возможно, стоит прочитать, что он говорит по математике.Они выпустили игры для машин с истощением мощности, таких как Gameboy, поэтому он дает представление о том, как сделать это быстро.

0 голосов
/ 30 ноября 2015

Существует более простое решение в демоверсии 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));
    }
...