glVertex2f (x-bs / 2, y-bs / 2);// Малює прямокутник
glVertex2f (x + bs / 2, y-bs / 2); f (x + bs / 2, y + bs / 2); ();
_color (0); (GL_LINE_LOOP); f (x-bs / 2, y + bs/2-0.1);
glVertex2f (x-bs / 2, y-bs/2-0.1);// Малює чорний ободок
glVertex2f (x + bs / 2, y-bs / 2); f (x + bs / 2, y + bs / 2); ();
_color (color);
}
/ / ------ CAR ------------------ :: car (float _cx, float _cy, int _ccolor, bool _crash , bool _godmode): cx (_cx), cy (_cy), ccolor (_ccolor), crash (_crash), godmode (_godmode)
{= ccolor; (crash == true) {
switch (crashblink) / / моргання машинки при аварії
{true: {color=0; car_i + +; if (car_i == 15) {crashblink=false; car_i=0;} break; } False: {color=1; car_i + +; if (car_i == 15) {crashblink=true; car_i=0;} break; }
}
} (godmode == true) bs=3;// Збільшення розміру блоку якщо включений політ
x=cx;=cy;
/ / ---- ();
/ / ----=cy + bs; ();=cx-bs; ();=cx + bs; ();=cx;
/ / ----=cy +2 * bs; ();
/ / ------=cy-bs; ();=cx-bs; ();=cx + bs; ();
x=cx;=cy;
}
/ / =========== :: ~ car () / / зафарбовуємо машинку прямокутником кольору фону
{f (foncolor [0], foncolor [1], foncolor [2]); (GL_QUADS); f (cx - 1.6 * bs, cy +2.6 * bs); f (cx -1.6 * bs, cy - 1.6 * bs); f (cx +1.6 * bs, cy - 1.6 * bs); f (cx +1.6 * bs, cy +2.6 * bs);
glEnd (); (godmode == true) bs=2;// Повертаємо розмір блоку в початкове положення
}
/ / ---- GRASS ---- :: grass (float _gwidth=0.0, float _gm=0.0): gwidth (_gwidth), gm (_gm)
{= gwidth / 2; k=true; (y =-ortho-bs / 2 + gm; y <= ortho + bs; y +=bs)
{(k) / / зміна кольору блоку через один
{true: color=2; k=false; break; false: color=21; k=true; break;
} ();// Малюємо праворуч від центру =-x;// Відображаємо Х ();// Малюємо зліва від центру =-x;// Відображаємо Х назад
}
}
:: ~ grass () {f (foncolor [0], foncolor [1], foncolor [2]);=gwidth / 2; (GL_QUADS); f (x - 0.6 * bs, + ortho); f (x - 0.6 * bs,-ortho); f (x +0.6 * bs,-ortho); f (x +0.6 * bs, + ortho); (); =-gwidth / 2; ( GL_QUADS); f (x - 0.6 * bs, + ortho); f (x - 0.6 * bs,-ortho); f (x +0.6 * bs,-ortho); f (x +0.6 * bs, + ortho) ; ();
}
/ / ---- WALL ---- малюємо стінку :: wall (float _wy, int _wpos, int _wcolor): wy (_wy), wpos (_wpos), wcolor (_wcolor) {
color=wcolor;=wy; (wpos) / / встановлюємо координати по Х в залежності від положення стінки (ліворуч або праворуч)
{0: wx =-roadwidth / 2 + wallwidth / 2 + bs / 2; break; 1: wx=roadwidth/2-wallwidth/2-bs/2; break;
}
(x=wx-wallwidth / 2 + bs / 2; x <= wx + wallwidth/2-bs/2; x +=bs) block ();// Ставимо 5 блоків
...