Добавлен , опубликован
Раздел:
Основы
Быстрая инструкция как сделать гифку на фреймах
1. Ищем нужную гифку.
2. Разбиваем ее на кадры и скачиваем архив. изображения сразу имеют удобные для нас названия
3. Распаковываем и конвертируем в blp.
4. Импортируем в карту.
5. Импортируем uitoc.toc, text.fdf и папку триггеров Gif из карты примера.
6. Редактируем строчку, заменяя название файлов.
set GifFrame[i] = "war3mapImported\\SZN1-"+I2S(i)+".blp"
7. Настраиваем скорость в GifUpdate.
8. Проверяем.

Принцип работы.
- Создается бэкдроп и раз в промежуток времени, сменяется картинка.

`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
8
3 года назад
0
Да-да
0
27
3 года назад
0
получается это там тысячи изображении (кадров), чтобы получилась анимация?
3
22
3 года назад
Отредактирован ofeerist
3
МрачныйВорон:
получается это там тысячи изображении (кадров), чтобы получилась анимация?
Да.
В моем случае, 109.

И как обычно, скачивается видос, а не карта...

Init
//TESH.scrollpos=0
//TESH.alwaysfold=0
globals
    
    integer GifBackdrop
    string array GifFrame
    integer Current = 0
    integer LastFrame 
endglobals

function InitGifFrames takes nothing returns nothing
    
    local integer i = 0
    set LastFrame = 109
    loop
    exitwhen i == LastFrame + 1
    
    set GifFrame[i] = "war3mapImported\\SZN1-"+I2S(i)+".blp"
    
    set i = i + 1
    endloop

endfunction

function Trig_Init_Actions takes nothing returns nothing
    
    local integer i = 0
    
    call LoadTOCFile("uitoc.toc")
    call InitGifFrames()
    
    set GifBackdrop = CreateFrame("SliderBackdrop", pGameUI, 0)
    call SetFrameSize(GifBackdrop, .28, .2)
    call SetFrameAbsolutePoint(GifBackdrop, 4, .4, .3)
    call SetFrameTexture(GifBackdrop, GifFrame[Current], false)

endfunction

//===========================================================================
function InitTrig_Init takes nothing returns nothing
    set gg_trg_Init = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_Init, 0.05 )
    call TriggerAddAction( gg_trg_Init, function Trig_Init_Actions )
endfunction

GifUpdate
function Trig_GifUpdate_Actions takes nothing returns nothing

    set Current = Current + 1
    if Current > LastFrame then
        set Current = 0
    endif
    call SetFrameTexture(GifBackdrop, GifFrame[Current], false)

endfunction

//===========================================================================
function InitTrig_GifUpdate takes nothing returns nothing
    set gg_trg_GifUpdate = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_GifUpdate, 0.03 )
    call TriggerAddAction( gg_trg_GifUpdate, function Trig_GifUpdate_Actions )
endfunction

text.fdf и uitoc.toc можно взять с кастомного слайдера
0
27
3 года назад
0
думаю, тут наверное и на рефорджет можно повторить. там вроде не нужно в blp переводить?
прикиньте, какие анимированные кнопки можно сделать. Вроде было что то такое с bar
4
22
3 года назад
Отредактирован ofeerist
4
МрачныйВорон:
думаю, тут наверное и на рефорджет можно повторить. там вроде не нужно в blp переводить?
прикиньте, какие анимированные кнопки можно сделать. Вроде было что то такое с bar
Повторить запросто возможно, код крайне простой.
И такие анимированные кнопки можно и на 126 сделать.
Особого труда тоже не составит.
1
32
3 года назад
1
МрачныйВорон, эй, я же уже это делал, а ты и забыл, обидно

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.