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

Гайд Анимированная полоска градиента наверху экрана (для geminisoftware готова к пастингу)

Олдфаг
Олдфаг
Статус
Оффлайн
Регистрация
6 Мар 2019
Сообщения
2,936
Реакции
1,002
Сидел нехуй было делать :roflanzdarova:


1. Куда-нибудь перед PaintTraverse
C++:
Expand Collapse Copy
void GradientLine(int x, int y, int w, int h, Color c1, Color c2)
{

    g_pSurface->FilledRect(x, y, w, h, c1);
    BYTE first = c2.red;
    BYTE second = c2.green;
    BYTE third = c2.blue;
    for (int i = 0; i < w; i++)
    {
        float fi = i, fw = w;
        float a = fi / fw;
        DWORD ia = a * 255;
        g_pSurface->FilledRect(x + i, y, 1, h, Color(first, second, third, ia));
    }

}

2. Это в ну короче ниже итак понятно куда :roflanzdarova:
C++:
Expand Collapse Copy
        int width, height;
        g_pEngine->GetScreenSize(width, height);      

        static unsigned int s, v, i;
        static float h, r, g, b, f, p, q, t;

        h = g_pGlobalVars->realtime * 0.5f;
        s = 1;
        v = 1;

        i = floor(h * 6);
        f = h * 6 - i;
        p = v * (1 - s);
        q = v * (1 - f * s);
        t = v * (1 - (1 - f) * s);

        switch (i % 6)
        {
            case 0: r = v, g = t, b = p; break;
            case 1: r = q, g = v, b = p; break;
            case 2: r = p, g = v, b = t; break;
            case 3: r = p, g = q, b = v; break;
            case 4: r = t, g = p, b = v; break;
            case 5: r = v, g = p, b = q; break;
        }

        r = round(r * 255), g = round(g * 255), b = round(b * 255);

        GradientLine(0, 0, width / 2, 4, Color(g, b, r, 255), Color(r, g, b, 255));
        GradientLine(width / 2, 0, width / 2, 4, Color(r, g, b, 255), Color(b, r, g, 255));
 
Бля, ебать, ты конечно молодец, но нахуя. Сейчас таких паст с такой штукой понаделают, а ведь я только недавно до этого додумался и сделал селф-код полоску) Бля, ну и нахуя и это делал?( ))))


 
Бля, ебать, ты конечно молодец, но нахуя. Сейчас таких паст с такой штукой понаделают, а ведь я только недавно до этого додумался и сделал селф-код полоску) Бля, ну и нахуя и это делал?( ))))
:roflanzdarova: бывает
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
такими темпами давай возрождай стикрпг чтобы эти кряки поняли кто тут старичок
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну всё мигхта идёт на рес stickrpg v3 > all
 
Сидел нехуй было делать :roflanzdarova:


1. Куда-нибудь перед PaintTraverse
C++:
Expand Collapse Copy
void GradientLine(int x, int y, int w, int h, Color c1, Color c2)
{

    g_pSurface->FilledRect(x, y, w, h, c1);
    BYTE first = c2.red;
    BYTE second = c2.green;
    BYTE third = c2.blue;
    for (int i = 0; i < w; i++)
    {
        float fi = i, fw = w;
        float a = fi / fw;
        DWORD ia = a * 255;
        g_pSurface->FilledRect(x + i, y, 1, h, Color(first, second, third, ia));
    }

}

2. Это в ну короче ниже итак понятно куда :roflanzdarova:
C++:
Expand Collapse Copy
        int width, height;
        g_pEngine->GetScreenSize(width, height);     

        static unsigned int s, v, i;
        static float h, r, g, b, f, p, q, t;

        h = g_pGlobalVars->realtime * 0.5f;
        s = 1;
        v = 1;

        i = floor(h * 6);
        f = h * 6 - i;
        p = v * (1 - s);
        q = v * (1 - f * s);
        t = v * (1 - (1 - f) * s);

        switch (i % 6)
        {
            case 0: r = v, g = t, b = p; break;
            case 1: r = q, g = v, b = p; break;
            case 2: r = p, g = v, b = t; break;
            case 3: r = p, g = q, b = v; break;
            case 4: r = t, g = p, b = v; break;
            case 5: r = v, g = p, b = q; break;
        }

        r = round(r * 255), g = round(g * 255), b = round(b * 255);

        GradientLine(0, 0, width / 2, 4, Color(g, b, r, 255), Color(r, g, b, 255));
        GradientLine(width / 2, 0, width / 2, 4, Color(r, g, b, 255), Color(b, r, g, 255));
Скриншот 2020-02-04 10_28_28.png

и чо це таке
 
C++:
Expand Collapse Copy
// VGUI_Surface
// draw_set_color - 15 | draw_filled_rect_fade - 123
void draw_gradient_rect(int x, int y, int w, int h, color c, color c_, bool horizontal) {
    draw_set_color(c.red, c.green, c.blue, c.alpha);
    draw_filled_rect_fade(x, y, w, h, 255, 0, horizontal);
    draw_set_color(c_.red, c_.green, c_.blue, c_.alpha);
    draw_filled_rect_fade(x, y, w, h, 0, 255, horizontal);
}
C++:
Expand Collapse Copy
    int w, h;
    engine->get_screen_size(w, h);
    float r = floor(sin(globals->realtime * 2) * 127 + 128),
        g = floor(sin(globals->realtime * 2 + 2) * 127 + 128),
        b = floor(sin(globals->realtime * 2 + 4) * 127 + 128);   
    surface->draw_gradient_rect(0, 0, w, max(1, menu->config.visuals_rainbowlinesize), color(r, g, b, 255), color(b, g, r, 255), true);

ne nu kak mne kazetsya tak leg4e budet
 
Сидел нехуй было делать :roflanzdarova:


1. Куда-нибудь перед PaintTraverse
C++:
Expand Collapse Copy
void GradientLine(int x, int y, int w, int h, Color c1, Color c2)
{

    g_pSurface->FilledRect(x, y, w, h, c1);
    BYTE first = c2.red;
    BYTE second = c2.green;
    BYTE third = c2.blue;
    for (int i = 0; i < w; i++)
    {
        float fi = i, fw = w;
        float a = fi / fw;
        DWORD ia = a * 255;
        g_pSurface->FilledRect(x + i, y, 1, h, Color(first, second, third, ia));
    }

}

2. Это в ну короче ниже итак понятно куда :roflanzdarova:
C++:
Expand Collapse Copy
        int width, height;
        g_pEngine->GetScreenSize(width, height);     

        static unsigned int s, v, i;
        static float h, r, g, b, f, p, q, t;

        h = g_pGlobalVars->realtime * 0.5f;
        s = 1;
        v = 1;

        i = floor(h * 6);
        f = h * 6 - i;
        p = v * (1 - s);
        q = v * (1 - f * s);
        t = v * (1 - (1 - f) * s);

        switch (i % 6)
        {
            case 0: r = v, g = t, b = p; break;
            case 1: r = q, g = v, b = p; break;
            case 2: r = p, g = v, b = t; break;
            case 3: r = p, g = q, b = v; break;
            case 4: r = t, g = p, b = v; break;
            case 5: r = v, g = p, b = q; break;
        }

        r = round(r * 255), g = round(g * 255), b = round(b * 255);

        GradientLine(0, 0, width / 2, 4, Color(g, b, r, 255), Color(r, g, b, 255));
        GradientLine(width / 2, 0, width / 2, 4, Color(r, g, b, 255), Color(b, r, g, 255));
Есть идея под дифьюз бомбы сделать полоску только горизонтальную и с Худом бомбы
 
Назад
Сверху Снизу