![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про Collision
Domowoi © (2004-12-03 22:34:00)В делфиХ у меня есть небольшая проблемка вот есть допустим 200 монстров и с каждым я должен проверить, столкнулся он или нет если да то у моего плеера отнимается Health, но корень проблемы заключается в том что когда начинаю проверять столкновения у каждого монстра, то комп неимоверно тормозит. Как разрешить эту задачу?
cyborg (2004-12-06 09:21:00) [1]Мысль недовыразил :).
Верней, при движении объектов, помечай, что текущие координаты заняты данным объектом, а потом проверяй, если это место свободно, то двигаем туда и помечаем, что заняли, если уже занято, то смотрим каким объектом.
cyborg (2004-12-06 09:19:00) [2]
> [3] TButton © (05.12.04 17:40)
Зачем столько проверок? Просто при передвижении объекта отмечай в массиве каком нибудь его местоположение. При проверке столкновений смотришь кто по текущим координатам есть и с ними проверяй коллизии.
DeadMeat (2004-12-05 18:28:00) [3]
> комп не вывезет. даже если только расстояния проверять.
> лагать должно не слабо.
В поток вынести... Ведь если делать все проверки а потом рисовать то да... а так нормально должно быть...
---
...Death Is Only The Begining...
MeF Dei Corvi (2004-12-05 17:47:00) [4]Вот здесь есть идея для стратежки:
http://daddy.mirgames.ru/texts/common/cossacks.phtml
TButton (2004-12-05 17:40:00) [5]
> Сначала проверяй, есть ли по близости монстр, если есть,
> то проверяй коллизию.
я вот кстати до этого не доходил, но боюсь.
как определять есть ли по близости монстр? очевидно, надо считать расстояние.
200 монстров
500 булетов
итого 600-800 объектов.
ну пусть будет 500.
между которыми требо проверить коллизию.
т.е. 500*499 ~250000 проверок за раз.
комп не вывезет. даже если только расстояния проверять. лагать должно не слабо.
Сумасшедший программист (2004-12-05 15:48:00) [6]Разнеси по кадрам
cyborg (2004-12-04 10:09:00) [7]Сначала проверяй, есть ли по близости монстр, если есть, то проверяй коллизию.