Иллюстрированный самоучитель по C++ Builder

Игра

Листинг 10.7. Функция Flag рисует флажок.

// рисует флаг
void _fastcall TForml::Flag(int x, int y)
{
TPoint p[4];
// координаты флажка и нижней точки древка
// точки флажка р[0].х=х+4; р[0].у=у+4;
 р[1].х=х+30; р[1].у=у+12;
р[2].х=х+4; р[2].у=у+20;
// установим цвет кисти и карандаша
Canvas › Brush › Color = clRed;
Canvas › Pen › Color = clRed;
// чтобы контур флажка был красный
Canvas › Polygon(р, 2); // флажок
// древко
Canvas › Pen › Color = clBlack;
Canvas › MoveTo(p[0].x, p[0].у);
Canvas › LineTo(x+4,y+36);
TPoint m[5]; // буква М
m[0].x=x+8; m[0].y=y+14;
m[l].x=x+8; m[l].y=y+8;
m[2].x=x+10; m[2].y=y+10;
m[3].x=x+12; m[3].y=y+8;
m[4].x=x+12; m[4].y=y+14;
Canvas › Pen › Color = clWhite;
Canvas › Polyline(m,4};
Canvas › Pen › Color = clBlack; }

Функция Mina (листинг 10.8) рисует мину. Мина (рис. 10.14) состоит из восьми примитивов: два прямоугольника и сектор образуют корпус мины, остальные элементы рисунка – линии ("усы" и полоски на корпусе).

Иллюстрированный самоучитель по C++ Builder › Примеры программ › Игра
Рис. 10.14. Мина

Листинг 10.8. Функция Mina рисует мину.

// рисует мину
void __faatcall TForml::Mina(int x, int y)
{
Canvas › Brush › Color = clGreen;
Canvas › Pen › Color = clBlack;
// корпус
Canvas › Rectangle(x+16,y+26,x+24,y+30);
Canvas › Rectangle(x+8,y+30,x+32,y+34);
Canvas › Pie(x+б,y+28,x+34,y+44,x+34,y+36,x+6,y+36);
// полоса на корпусе
Canvas › MoveTo(x+12,y+32);
Canvas › LineTo(x+28,y+32);
// основание
Canvas › MoveTo(x+8,y+36);
Canvas › LineTo(x+32,y+36);
// вертикальный "ус"
Canvas › MoveTo(x+20,y+22);
Canvas › LineTo(x+20,y+26);
// боковые "усы"
Canvas › MoveTo(x+8, y+30);
Canvas › LineTo(x+6,y+28);
Canvas › MoveTo(х+32,y+30);
Canvas › LineTo(х+34, у+28); }

Обеим функциям в качестве параметров передаются координаты базовой точки рисунка и указатель на объект, на поверхности которого надо рисовать.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.