![]() |
Игры: определение попадания
Хочу сделать игру.
Задача такая, есть N летящих пуль и есть M объектов в которые эти пули могут попасть. Какие существуют способы определения попадания пули в объект? В голову приходит лишь способ в каждом объекте на каждый кадр проверять hitTest-ом пересечение с каждой из N пуль. Но, ИМХО, не кажется мне способ оптимальным при достаточно большом M и N. Может кто подскажет более интересные варианты решения? |
Да ты прав hitTest ето очень плохо! Пусть твои обьекты проверяет определеннуюю координатную плоскость ели пуля в нее попадает то знач попала! -) Но что за игра у тебя куда пули летят в каком направлении дай исходник глянуть то, я мож внесу изменения и вышлю а ты глянеш!
|
Я так понимаю, это задача о пересечении прямой и плоскости, просто придется проверить M прямых.
Тут лучше спросить на мат. форумах, алгоритмы точно есть, потому что это используется в 3D движках, где есть рейтрейсинг... |
Цитата:
Ессно чем больше объектов, которые могут пересечься, тем сложнее. Вот к примеру: http://www.nuran.org/lab/flash/0034.htm Всего то 20 шариков а грузят даже Athlon 2000 ... |
А почему собственно лучше проверять по области, а не hitTest-ом. Разве сей оператор не был специально заведен для упрощения подобных задач? Подсовываешь поражаемый объект и координаты пули - получаешь результат. Тем паче на кадый кадр обсчет придется проводить для всех объектов по новой? Мишени то двигаются, пуля летит.
RATFACE, выслать не могу, я в процессе написания. Пока сделал только стрелка, точнее лучника. В данный момент атачу стрелы к моменту выстрела :). Стрелы летят на все 360 градусов. Вид сверху. |
Понимаешь, каждый раз обсчитывать все эти проверки, если у тебя пуль хотя бы 10, уже значит напрягать камень, о чем и сказал выше nuran.
Если воспользоваться мат. алгоритмами, то узнать, будет ли пересечение, можно за одно вычисление и еще до отрисовки графики. Проблема в том, что надо как-то описать фигуру... Т.к. объект, как я понимаю, у тебя может быть произвольной формы? |
Вложений: 1
ну вот и поняслась )))))))))))))))))))
математику городить начали ))) а стоит ли ???? если обьект после попадания уничтожается то можно обойтись обычным хиттестом , если обьект крупнее обьекта поподания и нужно контролировоть точно его контур то моно обойтись гетбоунсом , а математики на замену хит тесту только выгодна лиш в одном случае - когда необходимо контролировать соприкосновение обьектов с точностью до пикселя (хит тесты и прочие методы с операторами не дают такой точности , если обьект который отлавливает хиттест больше ловящего обькта то при пересечении координат х у персонаж либо обьект могет застрять в этом пересечении и вообще провалится невесть куда) P.S. а поповоду математики вот посмотри пример ))) P.S.2. я конечно же не Nuran но все же до пятки допрыгну)))))))))))))))) P.S.3. клавиши вверх и вниз двигают кубики пробел полет и лево право это лево право)) все это было задано что бы более четко видеть картину выгоды математики))))) P.S.4. Описать обьект мона простыми геометрическими фигурами - круг и квадрат )))) |
Bad Habit, у меня лучник управляется пользователем. Предполагается, что "Враги" двигаются за лучником, т.е. их тректория не просчитывается. Единственно что можно сделать, это как то математически отсечь те пули (стрелы) и объекты которые точно никогда не пересекутся.
|
Сделал.
Что получилось то получилось :) . Пытался сделать эмуляцию стрельбы из лука, на мой взгляд как в жизни :)) |
Сделал.
Что получилось то получилось :) . Пытался сделать эмуляцию стрельбы из лука, получилось на мой взгляд как в жизни :) (увлекался в свое время) http://www.cinematika.ru/entertainment/game_n.php |
| Часовой пояс GMT +4, время: 05:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.