Я разрабатываю игру, допустим, игрок помещает бомбу в место x = 100, y = 100, а радиус взрыва - 100 единиц ... Мне очень легко найти все «предметы» в игра была поражена взрывом бомбы (просто нужно проверить, что их расстояние от бомбы ниже 100).Как рассчитать площадь взрыва бомбы?
Но теперь я хочу принять во внимание препятствия, которые у меня есть в игре, препятствия - квадраты, всегда 64 * 64 пикселя, всегда выровнены по оси (не вращаются). Я хочу знать, был ли элемент «скрытый» за препятствием, чтобы знать, что он не попал ...
что-то вроде этого:
чувак на правой не попал, но чувак на дне был ударил, я заполнил серый участок хита, а в зеленой области, которая скрыта ...
Моя мысль: 1. Найдите все предметы в сцене, чтобы их расстояние от бомбы было ниже 100. 2. Найдите все препятствия на сцене, чтобы их расстояние от бомбы было ниже 100. 3 рассчитать линии от предметов до центра бомбы .. затем проверить, пересекаются ли линии с любым препятствием, если нет .. вы попали.
Окончание, вопросы 1. Есть ли у кого-то лучшее представление? 2. Есть ли свободные механизмы с открытым кодом C#, которые могут мне помочь? Box2d может помочь мне здесь?
Благодаря
Человеку-бомбардировщику не нужны сложные вычисления. – cgatian
Ваш подход хорош. Это вопрос только о количестве предметов и препятствий, с которыми вы имеете дело. Если число велико (для одного или обоих), полезно использовать разметку пространства для поиска элементов и/или препятствий в диапазоне времени регистрации. – Ante
Подумайте «коэффициент просмотра» - прочитайте любой текст о теплопередаче излучения. Я предполагаю, что вы не справитесь с этим, но так вы сделали бы это, если бы это была проблема радиационного переноса тепла. – duffymo