Читайте также:
|
|
Во многих игровых проектах таких, как «Крестики-нолики», «Сапер», «Морской бой» и других, игровое пространство представляет собой поле в клеточку заданного размера. Напишем свою процедуру DrawPole и будем использовать ее по мере необходимости. Входными параметрами для этой процедуры являются число клеток n по горизонтали (по вертикали то же самое), число h – размер одной клетки в пикселах и координаты левого верхнего угла поля
(х 0, у 0). Рисовать будем на форме.
procedure DrawPole (n, h, x0, y0: integer);
var i, j, x, y: integer;
begin
for i:= 1 to n do
begin
y:=y0 + (i – 1)*h;
for j:= 1 to n do
begin
x:=x0 + (j – 1)*h;
with Form1.Canvas do
begin
Pen.Color:= ClBlack;
Brush.Color:= ClWhite;
Brush.Style:= BsSolid;
Rectangle(x, y, x + h, y + h);
end;
end;
end;
end;
Для вызова процедуры DrawPole (n, h, x0, y0) надо задать константы n и h, а также начальные значения глобальных переменных x 0, y 0. Начальные данные зададим в методе формы Сreate.
procedure TForm1.FormCreate(Sender: TObject);
begin
x0:=10;
y0:=10;
end;
Метод формы Сreate не позволяет выводить изображение на форму, поэтому можно организовать вывод поля несколькими способами. Один из способов – вывести изображение по щелчку кнопки. Другой способ заключается в использовании события формы Paint. Рассмотрим второй способ. Выберите среди событий (Events) формы событие Paint и кликните дважды справа в выбранной строке. Откроется обработчик метода Paint, и в нем напишите:
DrawPole (n, h, x0, y0);
Результат работы программы приведен на рис. 9.
Рис. 9. Поле для игровых проектов
Задание. Положите на форму компонент TPaintBox, установите программным путем его размеры (свойства Width и Height), равными размерам поля. Выведите поле на PaintBox 1. Как надо изменить формулы для нахождения х и у? Нужны ли в этом случае х 0 и у 0?
Дата добавления: 2015-08-20; просмотров: 49 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Рисование узоров | | | Для построения графиков |