-
Автор темы
- #1
Сидел нехуй было делать
1. Куда-нибудь перед PaintTraverse
2. Это в ну короче ниже итак понятно куда
1. Куда-нибудь перед PaintTraverse
C++:
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. Это в ну короче ниже итак понятно куда
C++:
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));