LUA скрипт [Source | NL] Animation function

Олдфаг
Статус
Оффлайн
Регистрация
28 Дек 2018
Сообщения
2,585
Реакции[?]
1,436
Поинты[?]
2K
Пожалуйста, авторизуйтесь для просмотра ссылки.

чтобы не создавать переменные вне функции

Код:
local animation = {data = {}}

animation.lerp = function(start, end_pos, time)
    if type(start) == 'userdata' then
        local color_data = {0, 0, 0, 0}

        for i, color_key in ipairs({'r', 'g', 'b', 'a'}) do
            color_data[i] = animation.lerp(start[color_key], end_pos[color_key], time)
        end

        return color(unpack(color_data))
    end

    return (end_pos - start) * (globals.frametime * time * 175) + start
end

animation.new = function(name, value, time)
    if animation.data[name] == nil then
        animation.data[name] = value
    end

    animation.data[name] = animation.lerp(animation.data[name], value, time)

    return animation.data[name]
end

events.render:set(function()
    local val = globals.realtime % 4 > 2

    local y = animation.new('test y', val and 400 or 500, 0.007)
    local color = animation.new('test color', val and color(255, 255, 255, 255) or color(0, 0, 0, 0), 0.005)

    local pos = vector(200, y)

    render.text(1, pos, color, '', 'АНИМЕЙШН')
end)
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
2 Июл 2021
Сообщения
155
Реакции[?]
21
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
нууу такое себе
 
nikogda nikogda
Пользователь
Статус
Оффлайн
Регистрация
29 Окт 2018
Сообщения
303
Реакции[?]
99
Поинты[?]
0
А мне нравится. Можно придумать интересного много
 
Олдфаг
Статус
Оффлайн
Регистрация
28 Дек 2018
Сообщения
2,585
Реакции[?]
1,436
Поинты[?]
2K
нууу такое себе
так тут ничего ахуенного и нет, просто удобная функция лерпа и анимации которая позволяет не создавать переменные вне функции чтобы лерп работал, да и можно плавно делать смену цветов.

сделал вроде норм, так что можно и сюда выложить.
 
Начинающий
Статус
Оффлайн
Регистрация
8 Май 2017
Сообщения
265
Реакции[?]
22
Поинты[?]
0
code_language.lua:
local animation = {data = {}}

animation.lerp = function(start, end_pos, time)
    if type(start) == 'userdata' then
        local color_data = {0, 0, 0, 0}

        for i, color_key in ipairs({'r', 'g', 'b', 'a'}) do
            color_data[i] = animation.lerp(start[color_key], end_pos[color_key], time)
        end

        return color(unpack(color_data))
    end

    return (end_pos - start) * (globals.frametime * time * 175) + start
end

animation.new = function(name, value, time)
    if animation.data[name] == nil then
        animation.data[name] = value
    end

    animation.data[name] = animation.lerp(animation.data[name], value, time)

    return animation.data[name]
end

events.render:set(function()
    local val = globals.realtime % 4 > 2

    local y = animation.new('test y', val and 400 or 500, 0.007)
    local color = animation.new('test color', val and color(255, 255, 255, 255) or color(0, 0, 0, 0), 0.005)

    local pos = vector(200, y)

    render.text(1, pos, color, '', 'АНИМЕЙШН')
end)
Вот если кому надо
 
Сверху Снизу