Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Вопрос про Collision   Найти похожие ветки 

 
Domowoi   (2004-12-03 22:34) [0]

В делфиХ у меня есть  небольшая проблемка вот есть допустим 200 монстров и с каждым я должен проверить, столкнулся он или нет если да то у моего плеера отнимается Health, но корень проблемы заключается в  том что когда начинаю проверять столкновения у каждого монстра, то комп неимоверно тормозит. Как разрешить эту задачу?


 
cyborg ©   (2004-12-04 10:09) [1]

Сначала проверяй, есть ли по близости монстр, если есть, то проверяй коллизию.


 
Сумасшедший программист ©   (2004-12-05 15:48) [2]

Разнеси по кадрам


 
TButton ©   (2004-12-05 17:40) [3]


> Сначала проверяй, есть ли по близости монстр, если есть,
> то проверяй коллизию.

я вот кстати до этого не доходил, но боюсь.
как определять есть ли по близости монстр? очевидно, надо считать расстояние.
200 монстров
500 булетов
итого 600-800 объектов.
ну пусть будет 500.
между которыми требо проверить коллизию.
т.е. 500*499 ~250000 проверок за раз.
комп не вывезет. даже если только расстояния проверять. лагать должно не слабо.


 
MeF Dei Corvi ©   (2004-12-05 17:47) [4]

Вот здесь есть идея для стратежки:
http://daddy.mirgames.ru/texts/common/cossacks.phtml


 
DeadMeat ©   (2004-12-05 18:28) [5]


> комп не вывезет. даже если только расстояния проверять.
> лагать должно не слабо.

В поток вынести... Ведь если делать все проверки а потом рисовать то да... а так нормально должно быть...

---
...Death Is Only The Begining...


 
cyborg ©   (2004-12-06 09:19) [6]


> [3] TButton ©   (05.12.04 17:40)

Зачем столько проверок? Просто при передвижении объекта отмечай в массиве каком нибудь его местоположение. При проверке столкновений смотришь кто по текущим координатам есть и с ними проверяй коллизии.


 
cyborg ©   (2004-12-06 09:21) [7]

Мысль недовыразил :).
Верней, при движении объектов, помечай, что текущие координаты заняты данным объектом, а потом проверяй, если это место свободно, то двигаем туда и помечаем, что заняли, если уже занято, то смотрим каким объектом.



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
14-1108617817
Anonim
2005-02-17 08:23
2005.03.06
Подътягивание


14-1108644945
kaif
2005-02-17 15:55
2005.03.06
Волки и овцы


3-1107190444
albr
2005-01-31 19:54
2005.03.06
Кеширование изменений и ADO + MSSQL


1-1108622519
lipskiy
2005-02-17 09:41
2005.03.06
Как через ShellExecute открывать каждую ссылку в новом окне?


1-1108995207
red_imp
2005-02-21 17:13
2005.03.06
Как запустить досовую программу с ключами из другой директории