[nixware] Animated gif render

Статус
В этой теме нельзя размещать новые ответы.
  • 29
  • 6
создаёте в nix/scripts/ папочку animate

и дальше кидайте вашу гифку (преждевременно разделите её на кадры)

меняете комменты на ваши, и будет работать

если будут какие либо баги, пишите в тему, я их исправлю

gifrender:
ss = engine.get_screen_size()
local xpic = ui.add_slider_int("X Picture",      "xpic_lua", 0, ss.x, 50)
local ypic = ui.add_slider_int("Y Picture",      "ypic_lua", 0, ss.y, 50)
local wpic = ui.add_slider_int("Picture width",  "wpic_lua", 0, 500, 125)
local hpic = ui.add_slider_int("Picture height", "hpic_lua", 0, 500, 125)
draw = {
    prefix          = --[[ваше название]],
    suffix          = ".png",
    foldername      = "animate",
    our_gif         = {},
    delay           = 0.015,
    fcount          = --[[ваше значение]],
    fcurr           = 0,
    prev_time       = 0,
    time            = 0
}
local dir = "nix/scripts/" + draw.foldername + "/"
function AddTexture(path)
    if path == nil then
        path = renderer.setup_texture(path)
    end
    return path
end
function dodraw(p)
    p.time = globalvars.get_real_time()
    if p.time >= p.prev_time + p.delay then
        p.fcurr = p.fcurr + 1
        p.prev_time = p.time
    end
    if p.fcurr > p.fcount then
        p.fcurr = 0
    end
    renderer.texture(p.our_gif[p.fcurr], vec2_t.new(xpic, ypic), vec2_t.new(xpic + wpic, ypic + hpic), color_t.new(255, 255, 255, 255))
end
client.register_callback("paint", function()
    for i = 0, draw.fcount do
        table.insert(draw.our_gif, 1, AddTexture(dir + draw.prefix + tostring(i) + draw.suffix))
    end
    dodraw(draw)
end)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу