| Движения врагов - союзников. | 
|  | 
| 
| MrFozzie | Дата: Четверг, 26 Января 2012, 14:33 | Сообщение # 1 |  |   был не раз Сейчас нет на сайте | Доброго времени суток. Надеюсь вы мне поможете. Хотелось бы решить одну проблему по поводу движений и атаки как союзных так и вражеских "объектов". Расскажу вам всё подробнее чтобы все поняли, т.е. по пунктам. 1. Односторонее движение "объектов" к вражескому центру. (союз к врагам и наоборот).
 2. При движение они встречаются друг с другом и по моей задумке атаковать.
 3. Также движение "объектов" в две точки, сначала в одну и далее к самому центру (союз к врагам и наоборот).
 
 Больше вопросов нет. Хотелось бы получить объяснение как это сделать и желательно логическую цепочку, пример тоже не помешает.
 Заранее благодарю.
 |  |  |  |  | 
| 
| NewLang | Дата: Четверг, 26 Января 2012, 14:53 | Сообщение # 2 |  |   #include MegaGame.h Сейчас нет на сайте | 1. Либо при помощи путей либо через move torward 2. Сделай к спрайту чуваков конусную маску, а в collision объекта пиши instance_create(объект пули)
 В пуле в create пропиши скорость
 
 I'm Lang. NewLang
 Изучаю C++
 
   |  |  |  |  | 
| 
| kashey | Дата: Четверг, 26 Января 2012, 15:16 | Сообщение # 3 |  |   постоянный участник Сейчас нет на сайте | Quote (MrFozzie) 1. Односторонее движение "объектов" к вражескому центру. (союз к врагам и наоборот). Обычно в стратегиях вражеский центр это что то вроде главного здания. Тоесть когда появляется вражеский юнит, мы с помошью системы поиска пути (на ГМ можно реализовать множество таких) устанавливаем точку атаки на него и начинаем движение.
 На практике это легче всего сделать со встроенной системой поиска пути по сетке mp_grid_path().
 Создаем сетку mp_grid_create()
 Сразу же считаем путь от обьекта до вражеского центра mp_grid_path()
 Начинаем движение path_start()
 
 Quote (MrFozzie) 2. При движение они встречаются друг с другом и по моей задумке атаковать. Пока враг идет по пути к вражескому центру, ему могут встретиться союзные войска.
 Чтобы по дороге он смог их атаковать, ставим таймер. alarm[0]
 В таймере проверяем, есть ли в радиусе n вражеского юнита союзные войска if distance_to object(units_parent)<n.
 Если есть, опять же считаем путь, только уже до вражеского юнита, попавшего в радиус видимости. Начинаем движение и ставим таймер на повтор через несколько секунд. Теперь враг будет атаковать любой ближайший юнит в радиусе. Осталось только добавить строчку, которая установит цель для юнита обратно на вражеский центр, если в радиусе видимости больше нет врагов.
 Все на самом деле очень просто.
 
 Quote (MrFozzie) 3. Также движение "объектов" в две точки, сначала в одну и далее к самому центру (союз к врагам и наоборот). 3. Система поиска пути mp_grid уже включает в себя движение через несколько точек к цели. При этом учитывает препятствия, если они заданы.
 |  |  |  |  | 
| 
| MrFozzie | Дата: Четверг, 26 Января 2012, 22:12 | Сообщение # 4 |  |   был не раз Сейчас нет на сайте | kashey, с логикой согласен, но как же это в коде то   |  |  |  |  | 
| 
| kashey | Дата: Четверг, 26 Января 2012, 23:06 | Сообщение # 5 |  |   постоянный участник Сейчас нет на сайте | Ну ты же просил логическую цепочку, я ее тебе дал. Если я начну писать код, то придется полностью написать всю механику за тебя. Есть справка, открывай на функциях mp_grid и штудируй
   |  |  |  |  | 
| 
| MrFozzie | Дата: Пятница, 27 Января 2012, 09:16 | Сообщение # 6 |  |   был не раз Сейчас нет на сайте | kashey, Всё спасибо разобрался   |  |  |  |  |