Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
Способы определить боевую единицу между двумя точками
Не уверен, что угадал с разделом. Подскажите пожалуйста все возможные способы определить боевую единицу между двумя точками. Возможно, кто-нибудь осведомлен о новых способах, алгоритмах поиска. |
07.06.2009, 19:47 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
создаем группу, с определенным шагом идет в направлении от одного юнита к другому, и в определенном радиусе берем всех юнитов в группу, в конце имеется группа со всеми юнитами между точками, другого способа не знаю |
07.06.2009, 20:01 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Линкольн
Barg Ent.
offline
Опыт:
4,812Активность: |
J
Система не позволяет применить такой способ, поскольку определять нужно для каждого игрока в отдельности, на больших отрезках, в таймере с малым периодом. Линкольн добавил: Может такое случится, что другого способа просто нет. |
07.06.2009, 20:08 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,747Активность: |
ну есть еще вариант
x = maxx-minx
y = maxy-miny len = sqrt(x*x+y*y) x = x/len y = y/len делать большой регион с началом в одоной точке и в конце в другой, брать всех юнитов там и для каждого юнита делать что-то типо ux = GetUnitX(u)-minx uy = GetUnitY(u)-miny len = sqrt(ux*ux+uy*uy) ux = ux/len uy = uy/len cos = x*ux+y*uy if (len*cos < DIS) then action endif он естествено не оптимальнее, но просто как еще один способ, тут уже нету шагов, юниты берутся ровно по зажаному растоянию DIS от линии, в то время как в первом способе точность выборки зависила от шага |
07.06.2009, 20:24 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,534Активность: |
Линкольн вот пример без пика кругами, делал для человека не шарящего в джасе, поэтому на гуи+кс
|
07.06.2009, 20:29 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
не проще создать рект и регион и проверять isunitinregion ? |
07.06.2009, 20:37 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|