Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Alpha animation

🚬
Участник
Участник
Статус
Оффлайн
Регистрация
18 Май 2019
Сообщения
675
Реакции
243
как сделать анимацию с прозрачностью?(плавное появление) Надо типо, чтобы оно выводило уже переменную с альфой(хз как объяснить)
 
JavaScript:
Expand Collapse Copy
clamp = function (val, min, max) {
    if (val > max)
       return max
    if (min > val)
       return min
    return val
}

function on_draw()
{
 
    if (enable) {

        alpha = clamp(alpha + 1,0,255)
    }
    else
    {
        alpha = clamp(alpha - 1,0,255)
    }
    
}
Cheat.RegisterCallback("draw","on_draw")

Самое простой способ. Из за фпс будет меняться скорость анимации, но это можно легко фиксануть прибавляя или отнимая от альфы не статическое число, а вот эту поеботу на фреймтайме (

((1 / .15) * Globals.Frametime() * 200) / 200

) Поиграйся с числами и получишь нужную тебе скорость
Вместо clamp`a можно в if заебашить еще один if по типу alpha < 255, но зачем это нужно, когда есть clamp
 
сделал следующим образом:

C++:
Expand Collapse Copy
                auto colorsex = Color(g_cfg.at.str.r(), g_cfg.at.str.g(), g_cfg.at.str.b(), 0);

                float alphach = 0.f;

                if (alphach < 255)
                {
                    alphach++;
                }
                colorsex.SetAlpha(alphach);
                render::get().gradient(123, 123, 123, 123, scolors, colorsex, GRADIENT_VERTICAL);
не работает.
 
Скрытое содержимое
не воркает, градиент остается на 0 прозрачности.
1627152644251.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
Expand Collapse Copy
static float alpha = 0.f;
static bool reverse = false;
if (alpha < 255 && !reverse)
{
alpha += 0.1f;
if (alpha > 253)
reverse = true;
}
if (alpha < 0 && reverse)
{
alpha -= 0.1f;
if (alpha < 3)
reverse = true;
}

Лютый костыль, но работает.
сделал следующим образом:

C++:
Expand Collapse Copy
                auto colorsex = Color(g_cfg.at.str.r(), g_cfg.at.str.g(), g_cfg.at.str.b(), 0);

                float alphach = 0.f;

                if (alphach < 255)
                {
                    alphach++;
                }
                colorsex.SetAlpha(alphach);
                render::get().gradient(123, 123, 123, 123, scolors, colorsex, GRADIENT_VERTICAL);
не работает.
Переменная должна быть static т.е static float.
 
C++:
Expand Collapse Copy
static float alpha = 0.f;
static bool reverse = false;
if (alpha < 255 && !reverse)
{
alpha += 0.1f;
if (alpha > 253)
reverse = true;
}
if (alpha < 0 && reverse)
{
alpha -= 0.1f;
if (alpha < 3)
reverse = true;
}

Лютый костыль, но работает.

Переменная должна быть static т.е static float.
Можешь пожалуйста сделать, чтобы он работал в две стороны?) (255->0), (0->255)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Можешь пожалуйста сделать, чтобы он работал в две стороны?) (255->0), (0->255)
Так он и работает в 2 стороны
C++:
Expand Collapse Copy
if (alpha < 0 && reverse)
{


на
if (alpha > 0 && reverse)
{

замени.
 
Чем она тебе не понравилась? Тем что ты читать не умеешь и тебе надо сразу все готовое?
Чел, ты не пуп мира, почему я должен учиться именно по твоим гайдам? Помоему уходим с темы вопроса, нет?
 
как сделать анимацию с прозрачностью?(плавное появление) Надо типо, чтобы оно выводило уже переменную с альфой(хз как объяснить)
Через Globals->realtime можно сделать какую угодно анимацию
 
Назад
Сверху Снизу