Сейчас 11:25:02 Понедельник, 25 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Ближайший юнит
aqwexxxДата: Суббота, 19 Июля 2014, 12:07:47 | Сообщение # 1
3 уровень
Группа: Проверенные
Сообщений: 57
Награды: 0
Репутация: 0
Блокировки:
Как выбрать ближайшего юнита к какой то точке, например.
Спасибо!
 

[SeKtOR]Дата: Суббота, 19 Июля 2014, 19:37:32 | Сообщение # 2
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
http://www.hiveworkshop.com/forums....-204217
http://www.hiveworkshop.com/forums....-166199


 

ExtrematorДата: Суббота, 19 Июля 2014, 21:09:11 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
set P1 = точка вокруг которой идёт поиск

пикаешь юнитов в радиусе R от точки P1
отсеиваешь нужных - заноси в группу G


если группа НЕ пуста, то
>>> set U = null
>>> set D = 9999.
>>> работаешь в группой G
>>> >>> set P2 = позиция пикнутого юнита
>>> >>> если дистанция между P1 и P2 меньше D, то
>>> >>> >>> set U = пикнутый юнит
>>> >>> >>> set D = дистанция между P1 и P2
>>> >>> удалить точку P2
>>> очистить группу G
>>> === теперь можшь работать с самым ближайшим юнитом U ===

удалить точку P1


Сообщение отредактировал Extremator - Суббота, 19 Июля 2014, 21:10:41
 

aqwexxxДата: Воскресенье, 20 Июля 2014, 12:12:43 | Сообщение # 4
3 уровень
Группа: Проверенные
Сообщений: 57
Награды: 0
Репутация: 0
Блокировки:
ОХ...
Цитата Extremator ()
пикаешь юнитов в радиусе R от точки P1
отсеиваешь нужных - заноси в группу G

если группа НЕ пуста, то
>>> set U = null
>>> set D = 9999.
>>> работаешь в группой G
>>> >>> set P2 = позиция пикнутого юнита
>>> >>> если дистанция между P1 и P2 меньше D, то
>>> >>> >>> set U = пикнутый юнит
>>> >>> >>> set D = дистанция между P1 и P2
>>> >>> удалить точку P2
>>> очистить группу G
>>> === теперь можшь работать с самым ближайшим юнитом U ===

удалить точку P1

РАзве дистанция между р1 и р2 не будем меньше 9999 всегда?
 

ExtrematorДата: Воскресенье, 20 Июля 2014, 18:57:54 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Цитата aqwexxx ()
РАзве дистанция между р1 и р2 не будем меньше 9999 всегда?

каждый раз когда жистанция будет меньше чем предыдущее значение - оно будет записывать новое более меньшее значение

в первый раз он берёт 9999, и любой первый юнит будет ближайшим
далее он возьмёт ещё одного, если он дальше - то его расстояние будет больше D
если ближе - то будет меньше, а значит будет записано его растояние

таким образом переменная будет постоянно записывать новые значения, если они будут меньше
в итоге - ты получишь самое наименьшее значение и юнита с котором оно было записано
 

aqwexxxДата: Понедельник, 21 Июля 2014, 20:35:55 | Сообщение # 6
3 уровень
Группа: Проверенные
Сообщений: 57
Награды: 0
Репутация: 0
Блокировки:
Спасибо! Заработало! Не знал, что так можно через группу юнитов делать.
Кинул бы скрин. но не знаю как.
 

SirNikolasДата: Понедельник, 21 Июля 2014, 20:54:36 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Загрузи на хостинг (например, сюда) и дай ссылку. А зачем скрин, если выше приведено рабочее решение?

 

aqwexxxДата: Понедельник, 21 Июля 2014, 23:34:28 | Сообщение # 8
3 уровень
Группа: Проверенные
Сообщений: 57
Награды: 0
Репутация: 0
Блокировки:
Цитата SirNikolas ()
Загрузи на хостинг (например, сюда) и дай ссылку. А зачем скрин, если выше приведено рабочее решение?

НУ так, просто, для наглядности)))
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz