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

Вопрос Анимация появления круга

Astty
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
11 Окт 2020
Сообщения
435
Реакции
56
Хочу сделать анимацию появления круга
Я то сделал, но он только работает на первый круг, а дальше нет анимации (то есть второй круг и т. уже без анимации), что делать? Подскажите
(Код ниже)

C++:
Expand Collapse Copy
    static auto alpha = 0.0f;


        if ( origin.IsValid())
            alpha += 3.0f * m_globals()->m_frametime;
        else
            alpha -= 3.0f * m_globals()->m_frametime;

    alpha = Math::clamp(alpha, 0.0f, 1.0f);

    render::get().Draw3DCircle(origin, 144.f, Color(col.r(), col.g(), col.b(), (int)(col.a() * alpha)), 60);
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хочу сделать анимацию появления круга
Я то сделал, но он только работает на первый круг, а дальше нет анимации (то есть второй круг и т. уже без анимации), что делать? Подскажите
(Код ниже)

C++:
Expand Collapse Copy
    static auto alpha = 0.0f;


        if ( origin.IsValid())
            alpha += 3.0f * m_globals()->m_frametime;
        else
            alpha -= 3.0f * m_globals()->m_frametime;

    alpha = Math::clamp(alpha, 0.0f, 1.0f);

    render::get().Draw3DCircle(origin, 144.f, Color(col.r(), col.g(), col.b(), (int)(col.a() * alpha)), 60);
мейби задать повторение ?
 
Хочу сделать анимацию появления круга
Я то сделал, но он только работает на первый круг, а дальше нет анимации (то есть второй круг и т. уже без анимации), что делать? Подскажите
(Код ниже)

C++:
Expand Collapse Copy
    static auto alpha = 0.0f;


        if ( origin.IsValid())
            alpha += 3.0f * m_globals()->m_frametime;
        else
            alpha -= 3.0f * m_globals()->m_frametime;

    alpha = Math::clamp(alpha, 0.0f, 1.0f);

    render::get().Draw3DCircle(origin, 144.f, Color(col.r(), col.g(), col.b(), (int)(col.a() * alpha)), 60);
у тебя что 1 альфа для всех оригинов
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в прямом. у тебя 1 альфа на все origin.
16 игроков - 16 ориджинов - 1 альфа.

Вот тебе подсказали
static auto alpha[64] = {0.0f};

и вот

Если не понимаешь о чем речь - прошу
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
в прямом. у тебя 1 альфа на все origin.
16 игроков - 16 ориджинов - 1 альфа.

Вот тебе подсказали


и вот


Если не понимаешь о чем речь - прошу
Пожалуйста, авторизуйтесь для просмотра ссылки.
а причем тут игроки? я просто для смоук таймера делаю
 
а причем тут игроки? я просто для смоук таймера делаю
Ты создаёшь static auto alpha[64] = {0.0f}; в начале.
Далее, уже в цикле ентити ты используешь alpha[ent->get_index()] везде.
Если тебе нужен смок, то берёшь ентити смока:
Пожалуйста, авторизуйтесь для просмотра ссылки.
То есть smoke->get_index().
/UPD: А смысл, в лв уже сделано всё для этого.
 
Ты создаёшь static auto alpha[64] = {0.0f}; в начале.
Далее, уже в цикле ентити ты используешь alpha[ent->get_index()] везде.
Если тебе нужен смок, то берёшь ентити смока:
Пожалуйста, авторизуйтесь для просмотра ссылки.
То есть smoke->get_index().
/UPD: А смысл, в лв уже сделано всё для этого.
и как мне цикл то сделать, я именно не понимаю как сделать цикл
 
и как мне цикл то сделать, я именно не понимаю как сделать цикл
В такой ситуации тебе по идее не нужен цикл, просто напиши static auto alpha[64] = {0.0f}; и далее используй alpha[smoke->get_index()].
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а причем тут игроки? я просто для смоук таймера делаю
даже если для смока.
у тебя может быть кинуто одновременно 2,5,6,100 смоков. делай так,как сказали. итерация не нужна.
 
Назад
Сверху Снизу