Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 09.11.2004, 12:58
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 1  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
По умолчанию Игры: определение попадания

Хочу сделать игру.
Задача такая, есть N летящих пуль и есть M объектов в которые эти пули могут попасть.
Какие существуют способы определения попадания пули в объект?
В голову приходит лишь способ в каждом объекте на каждый кадр проверять hitTest-ом пересечение с каждой из N пуль.
Но, ИМХО, не кажется мне способ оптимальным при достаточно большом M и N.
Может кто подскажет более интересные варианты решения?
__________________
Бороться и искать, найти и перепрятать.

Старый 09.11.2004, 18:12
RATFACE вне форума Посмотреть профиль Найти все сообщения от RATFACE
  № 2  
RATFACE
Banned

Регистрация: Jun 2004
Сообщений: 39
Да ты прав hitTest ето очень плохо! Пусть твои обьекты проверяет определеннуюю координатную плоскость ели пуля в нее попадает то знач попала! -) Но что за игра у тебя куда пули летят в каком направлении дай исходник глянуть то, я мож внесу изменения и вышлю а ты глянеш!

Старый 10.11.2004, 02:23
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 3  
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Я так понимаю, это задача о пересечении прямой и плоскости, просто придется проверить M прямых.

Тут лучше спросить на мат. форумах, алгоритмы точно есть, потому что это используется в 3D движках, где есть рейтрейсинг...

Старый 10.11.2004, 05:16
nuran вне форума Посмотреть профиль Отправить личное сообщение для nuran Найти все сообщения от nuran
  № 4  
nuran

Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
Цитата:
Оригинал написал(а) Bad Habit
... потому что это используется в 3D движках, где есть рейтрейсинг...
Нифига куда тебя понесло.
Ессно чем больше объектов, которые могут пересечься, тем сложнее. Вот к примеру:
http://www.nuran.org/lab/flash/0034.htm

Всего то 20 шариков а грузят даже Athlon 2000 ...
__________________
flash/flex/unity

Старый 10.11.2004, 18:42
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 5  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
А почему собственно лучше проверять по области, а не hitTest-ом. Разве сей оператор не был специально заведен для упрощения подобных задач? Подсовываешь поражаемый объект и координаты пули - получаешь результат. Тем паче на кадый кадр обсчет придется проводить для всех объектов по новой? Мишени то двигаются, пуля летит.

RATFACE, выслать не могу, я в процессе написания. Пока сделал только стрелка, точнее лучника. В данный момент атачу стрелы к моменту выстрела . Стрелы летят на все 360 градусов. Вид сверху.
__________________
Бороться и искать, найти и перепрятать.

Старый 10.11.2004, 21:18
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 6  
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Понимаешь, каждый раз обсчитывать все эти проверки, если у тебя пуль хотя бы 10, уже значит напрягать камень, о чем и сказал выше nuran.

Если воспользоваться мат. алгоритмами, то узнать, будет ли пересечение, можно за одно вычисление и еще до отрисовки графики. Проблема в том, что надо как-то описать фигуру... Т.к. объект, как я понимаю, у тебя может быть произвольной формы?

Старый 10.11.2004, 23:33
D12 вне форума Посмотреть профиль Отправить личное сообщение для D12 Найти все сообщения от D12
  № 7  
D12
меценат
 
Аватар для D12

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
ну вот и поняслась )))))))))))))))))))

математику городить начали )))
а стоит ли ???? если обьект после попадания уничтожается то можно обойтись обычным хиттестом , если обьект крупнее обьекта поподания и нужно контролировоть точно его контур то моно обойтись гетбоунсом , а математики на замену хит тесту только выгодна лиш в одном случае - когда необходимо контролировать соприкосновение обьектов с точностью до пикселя (хит тесты и прочие методы с операторами не дают такой точности , если обьект который отлавливает хиттест больше ловящего обькта то при пересечении координат х у персонаж либо обьект могет застрять в этом пересечении и вообще провалится невесть куда)

P.S. а поповоду математики вот посмотри пример )))
P.S.2. я конечно же не Nuran но все же до пятки допрыгну))))))))))))))))
P.S.3. клавиши вверх и вниз двигают кубики пробел полет и лево право это лево право)) все это было задано что бы более четко видеть картину выгоды математики)))))
P.S.4. Описать обьект мона простыми геометрическими фигурами - круг и квадрат ))))
Вложения
Тип файла: zip 12.zip.zip (27.3 Кб, 210 просмотров)
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники


Последний раз редактировалось D12; 10.11.2004 в 23:37.
Старый 11.11.2004, 11:46
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 8  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
Bad Habit, у меня лучник управляется пользователем. Предполагается, что "Враги" двигаются за лучником, т.е. их тректория не просчитывается. Единственно что можно сделать, это как то математически отсечь те пули (стрелы) и объекты которые точно никогда не пересекутся.
__________________
Бороться и искать, найти и перепрятать.

Старый 18.11.2004, 14:08
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 9  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
Сделал.
Что получилось то получилось . Пытался сделать эмуляцию стрельбы из лука, на мой взгляд как в жизни )
__________________
Бороться и искать, найти и перепрятать.

Старый 18.11.2004, 14:10
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 10  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
Сделал.
Что получилось то получилось . Пытался сделать эмуляцию стрельбы из лука, получилось на мой взгляд как в жизни (увлекался в свое время)
http://www.cinematika.ru/entertainment/game_n.php
__________________
Бороться и искать, найти и перепрятать.

Создать новую тему   Часовой пояс GMT +4, время: 14:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.