Очередность хода у юнитов.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Очередность хода у юнитов.

Сообщение VitaMin00 20 июн 2013, 13:37

Всем привет. Столкнулся с проблемой, которую никак не могу решить.
Игра типа героев, точнее сам бой. Есть 12 юнитов и в зависимости от их инициативы устанавливается очередность хода. Как это сделать? Есть скрипт, который брошен на всех этих юнитов, в котором установлена переменная Initiative. У каждого она разная. Нужно, что бы они ходили по очереди от большей инициативы к меньшей. Но никак не могу сообразить, как это сделать. Вроде легкая задачка, взял, сравнил, у кого больше, тот и орёл, а нифига не могу правильно написать код. Помогите пожалуйста.
VitaMin00
UNITрон
 
Сообщения: 187
Зарегистрирован: 12 мар 2012, 19:54

Re: Очередность хода у юнитов.

Сообщение PoqXert 20 июн 2013, 13:56

Расширения для Unity3D
Блог программиста - PoqXert.ru
PoqXert
UNITрон
 
Сообщения: 244
Зарегистрирован: 20 мар 2011, 01:12
  • Сайт

Re: Очередность хода у юнитов.

Сообщение VitaMin00 20 июн 2013, 13:57

И я ничего не понял
VitaMin00
UNITрон
 
Сообщения: 187
Зарегистрирован: 12 мар 2012, 19:54

Re: Очередность хода у юнитов.

Сообщение PoqXert 20 июн 2013, 14:12

Грустно...
Есть 2 способа:
1) Закинуть все юниты в очередь и отсортировать по инициативе.
2) При добавлении в очередь проверять, если инициатива предыдущего юнита ниже данного, меняем их местами и снова проверяем.. (таже сортировка, но по одному и при добавлении).
Какой способ и как реализовать - думай сам. Готовый код не дам.
Расширения для Unity3D
Блог программиста - PoqXert.ru
PoqXert
UNITрон
 
Сообщения: 244
Зарегистрирован: 20 мар 2011, 01:12
  • Сайт

Re: Очередность хода у юнитов.

Сообщение Good1101 20 июн 2013, 14:33

Вроде легкая задачка, взял, сравнил, у кого больше, тот и орёл, а нифига не могу правильно написать код. Помогите пожалуйста.

ну все верно взял сравнил :)(точнее лучше отсортировал) в чем проблема?)
Как тут стрелять?
Аватара пользователя
Good1101
Адепт
 
Сообщения: 1100
Зарегистрирован: 17 ноя 2011, 14:07
  • ICQ

Re: Очередность хода у юнитов.

Сообщение VitaMin00 21 июн 2013, 10:14

Проблема в том, как правильно код записать. Вот как я делаю и не понимаю, правильно ли я делаю:
Создаю скрипт UnitStats, вешаю на каждого юнита, устанавливаю переменную Initiative. В редакторе каждому устанавливаю разное значение. На камеру кидаю новый скрипт Control Battle. В нём создаю Array list:
public static ArrayList Turn_Initiative = new ArrayList();
И вот тут вопрос. В него закидывать самих юнитов (gameobject) или переменные инициативы? Если кидаю переменную int (initiative), то сортирую с помощью Turn_Initiative.Sort(); но она сортируется с наименьшего к большего, а не наоборот. Ну а что дальше делать? Как прописать, что бы тот, у кого большее число - был активен? понятия не имею((
VitaMin00
UNITрон
 
Сообщения: 187
Зарегистрирован: 12 мар 2012, 19:54

Re: Очередность хода у юнитов.

Сообщение PoqXert 21 июн 2013, 12:13

VitaMin00 писал(а):В него закидывать самих юнитов (gameobject) или переменные инициативы?

Туда закидываешь скрипты юнитов, он них и гэймобъект получить можно и инициативу.
А если инициативу, то ты от нее ничего не сможешь получить.
Расширения для Unity3D
Блог программиста - PoqXert.ru
PoqXert
UNITрон
 
Сообщения: 244
Зарегистрирован: 20 мар 2011, 01:12
  • Сайт

Re: Очередность хода у юнитов.

Сообщение PavelWorld 21 июн 2013, 12:18

А ты сделай отдельный скрипт, в него отсылай те переменные с ихней иницативой, проверяй какой больше и включай тому мод хода.
Аватара пользователя
PavelWorld
UNIт
 
Сообщения: 133
Зарегистрирован: 10 фев 2013, 19:39
Откуда: Севастополь

Re: Очередность хода у юнитов.

Сообщение ascilograf 21 июн 2013, 12:28

1. На контроллере очереди создается массив классов UnitStat[] unitStats.
2. На старте боя по тэгу ищем бойцов, запихиваем их в массив во временный массив GameObject[] units.
2.а. Обнуляем и расширяем unitStats до размера units.
3. Берем GetComponent<UnitStat>() из каждого пойманного объекта units и помещаем в unitStats.
4. циклом по массиву units сортируем от меньшего к большему, или как угодно.
5. чередуем ход по порядку получившегося пассива.
авось
Аватара пользователя
ascilograf
UNITрон
 
Сообщения: 226
Зарегистрирован: 21 апр 2012, 10:00
Откуда: Новокузнецк

Re: Очередность хода у юнитов.

Сообщение VitaMin00 25 июн 2013, 12:36

Всем спасибо, кто ответил) вопрос решён)
VitaMin00
UNITрон
 
Сообщения: 187
Зарегистрирован: 12 мар 2012, 19:54


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 31