Движения врагов - союзников.
|
|
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, Всё спасибо разобрался
|
|
| |