Uncolo
offline
Опыт:
580Активность: |
создание действий через массив
возникла такая потребность, но как зделать такое:
Код:
call Unit[i].AddAction(function F1) - привяжет действие к юнитам в массиве, но в одну функцию вот вопрос: как привязать к каждому юниту свою функцию? создавать без цикла это понятно, а вот как через цикл? если возможно... просто число 10 далеко не окончательное, это только пример |
08.05.2012, 00:35 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
Нельзя создавать массив code. Но можно массив string и делать ExecuteFunc. |
08.05.2012, 00:38 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Uncolo
offline
Опыт:
580Активность: |
Hanabishi, мне бы пример, а то не очень то пока понял
|
08.05.2012, 00:42 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
Твоя структура:
Где-то в нужном месте задаёшь значение:
Потом где надо вызываешь:
|
08.05.2012, 01:09 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
Кстати, если интересно, это может быть реализовано как классы, а не функции ru.wikipedia.org/wiki/Наблюдатель_%28шаблон_проектирования%29
Т.е. observer(handler) - это заменит твою функцию, а observable - это тот, кто их вызывает
вот, alexprey показал это на примере) Отредактировано ScorpioT1000, 08.05.2012 в 03:02. |
08.05.2012, 02:16 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
alexprey
познающий Unity
offline
Опыт:
68,501Активность: |
Uncolo, побыстрому навалял на vJass
((код vjass
interface IEventHandler
method OnSomeEvent takes integer someInt returns nothing endinterface ...
struct someHandler extends IEventHandler
method OnSomeEvent takes integer someInt returns nothing call BJDebugMsg("+)") endmethod endstruct ...
...
struct Unit
private IEventHandler array handlerList [16] private integer handlerCount = 0 ... method CallHandler takes nothing returns nothing local integer i = .handlerCount - 1 loop exitwhen i < 0 call .handlerList[i].OnSomeEvent(someInt) set i = i - 1 endloop endmethod
...
endstruct )) |
|||||||||||||||||||||||||||||
08.05.2012, 02:57 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Uncolo
offline
Опыт:
580Активность: |
alexprey, во, то что надо, спасибо!
ScorpioT1000, паблишеры я еще в универе давно прошел) просто я не до конца все фишки изучил в препроцессорах |
08.05.2012, 12:11 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
А я бы, как низкоуровневый программист, просто бы добавил к структуре одно int поле, и работал бы с ним бинарно (правда в jass это будет представлять некое шаманство, с массовым делением и умножением с переполнением):
|
08.05.2012, 15:48 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|