Добавлен , опубликован
Всего пара строк кода, но получается чёткая фигура. Попытайтесь догадаться как это работает? =)
триггер1
function stop_drawing takes nothing returns nothing
  call DisableTrigger(gg_trg_go)
endfunction

function Trig_initialization_Actions takes nothing returns nothing
  local timer t = CreateTimer()
  set udg_loc = Location((GetUnitX( gg_unit_h000_0001)+GetUnitX( gg_unit_h000_0002))/2,(GetUnitY( gg_unit_h000_0001)+GetUnitY( gg_unit_h000_0002))/2)
  call FogEnable(false)
  call FogMaskEnable(false)
  call TimerStart(t,40.0,false, function stop_drawing )
endfunction

//===========================================================================
function InitTrig_initialization takes nothing returns nothing
    set gg_trg_initialization = CreateTrigger(  )
    call TriggerAddAction( gg_trg_initialization, function Trig_initialization_Actions )
endfunction
триггер2
function Trig_go_Actions takes nothing returns nothing 
  local integer r = GetRandomInt(1,3)
  call CreateUnitAtLoc(Player(0),'h000',udg_loc,0.00)
  if r == 1 then
  call MoveLocation(udg_loc,(GetLocationX(udg_loc)+GetUnitX( gg_unit_h000_0001))/2,(GetLocationY(udg_loc)+GetUnitY( gg_unit_h000_0001))/2)
  elseif r == 2
  call MoveLocation(udg_loc,(GetLocationX(udg_loc)+GetUnitX( gg_unit_h000_0002))/2,(GetLocationY(udg_loc)+GetUnitY( gg_unit_h000_0002))/2)
  elseif r == 3
  call MoveLocation(udg_loc,(GetLocationX(udg_loc)+GetUnitX( gg_unit_h000_0003))/2,(GetLocationY(udg_loc)+GetUnitY( gg_unit_h000_0003))/2)
  endif
  
  
endfunction

//===========================================================================
function InitTrig_go takes nothing returns nothing
    set gg_trg_go = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_go, 0.01 )
    call TriggerAddAction( gg_trg_go, function Trig_go_Actions )
endfunction
весь код
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
20
6 лет назад
Отредактирован Diaboliko
0
Не вижу смысла даже вникать, поскольку отсутствие оптимизации кода отбивает настроение, однако, хочу заметить, что скриншот Ваш даже не отображается (хотя, почему-то, я успел увидеть его часть пока прогружалась страница, фронтенд скрипт показывает что он действительно есть). Причиной тому - правила размещения изображений.
0
15
6 лет назад
0
Diaboliko:
Не вижу смысла даже вникать, поскольку отсутствие оптимизации кода отбивает настроение, однако, хочу заметить, что скриншот Ваш даже не отображается (хотя, почему-то, я успел увидеть его часть пока прогружалась страница, фронтенд скрипт показывает что он действительно есть). Причиной тому - правила размещения изображений.
Исправленно)
2
21
6 лет назад
2
Тоже делал что-то подобное. Создание воинов - не самая лучшая идея. При 1000+ итерациях начинает заметно подтормаживать.
2
15
6 лет назад
2
Да, похоже что моя идея не нова, в реализации фракталов на Wc3. Хотя и не обязательно останавливаться на треугольниках, можно получать более сложные узоры используя несколько геом. фигур, но с разным шансом движения к точкам этих фигур)
1
21
6 лет назад
1
DarkLigthing, ага, только понадобится очень много точек, из-за которых WC3 сильно лагает.
0
18
6 лет назад
0
ScopteRectuS, а если вместо юнитов использовать декорации, а вместо точек - координаты?
0
15
6 лет назад
0
Maniac_91:
ScopteRectuS, а если вместо юнитов использовать декорации, а вместо точек - координаты?
Координаты использовать лучше конечно, т.к объекты типа real гораздо менее объемные. Но в моем примере используется только одна глобальная точка которая двигается через MoveLocation(), что по сути тоже самое т.к в каждой итерации утекают только real во время присвоения точке новой координаты. Так что это не имеет особого значения. В остальном это вопрос детализации фигуры, больше точек - выше детализация, декорации тоже подходят лучше, чем юниты, но это все равно высокая нагрузка. хотя и нужно исходить из области применения фрактала, что в принципе придумать не просто в рамках wc3. Если это просто вариант побаловаться с фракталами то оптимизация сильно значения не имеет, если не делать совсем уж грубых ошибок в коде, а вот использование в реальной игровой карте уже другой вопрос. А так можно попробовать связывать точки эффектом молний удаляя сами точки-обьекты, но это только задумка)
0
21
6 лет назад
0
Maniac_91, я пытался через эффекты, просадки ФПС начинаются примерно с 3000+ итерации..
Возможно из-за того что эффекты были эффектные, хз.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.