Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Delphi для чайников, или как научиться программировать


Информационный Канал Subscribe.Ru


"Эверест" - Центр Практической Информатики

представляет вводный курс

"Delphi для чайников"

Здравствуйте, уважаемые подписчики!

Представляем вторую часть нашего курса "Создаем свою первую игру в Delphi".

Данный курс рассчитан на людей уже попробывавших свои силы в этой системе программирования и знакомого с простейшими операциями.

Тем же, кто еще не работал в Delphi или не пробовал писать игры, я рекомендую нашу рассылку, вернее ее первую часть по адресу: http://umnik.rikt.ru/everest/distant/delphi.htm

Наша задача: научиться использовать в своих программах циклы и массивы, научиться писать небольшие игрушки с использованием этих конструкций.

 

Урок 5. Процедурное программирование.

 

Сегодня мы начнем делать заготовку для многих интеллектуальных игр.

Идея:
Каждая игра играется на своем поле. Для сложных трехмерных стрелялок поле одно, для настольных игр - другое. Карту для стрелялок мы создавать не будем. Во-первых, сложно для начинающих, во-вторых, для ее создания нужны несколько другие инструменты.
Наша цель - подготовка плацдарма для небольших настольных игр.


Создание поля.
В качестве первого проекта - нарисуем шахматную доску.
Какие инструменты для этого пригодятся? Свойство Canvas.

Этот класс создает канву (холст), на котором можно рисовать чертежными инструментами - пером, кистью, шрифтом. Для этого существуют объекты Font, Pen, Brush.

1. Открывайте Delphi или создавайте новый проект.
2. На форму поместите кнопку, она нам скоро пригодится.

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

Создаем процедуру.

3. Дважды щелкните по кнопке Button1. Откроется редактор кода.
4. Посмотрите в этом редакторе выше на раздел type. Delphi уже создала процедуру обработки щелчка мыши:

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Там же и мы будем писать нашу процедуру.

5. Напишите так, как у меня:

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Paint1;
private
{ Private declarations }
public
{ Public declarations }
end;


Я назвал свою процедуру Paint1 (рисовать). Вы же вольны придумать свой название.

Процедура объявлена. Что дальше?

После раздела implementation ее необходимо записать.

6. Пишем:
Procedure Form1 и поставьте точку. Посмотрите:

Появилось окно, в котором Delphi предлагает подсказку.
Программа о нас позаботилась. Мы только объявили процедуру, а Delphi уже внесла ее в свой список. Спасибо ей.

7. Выберите процедуру Pain1 или допишите:

procedure Tform1.Paint1;

8. Теперь допишите стандартные строки begin и end;

procedure Tform1.Paint1;
begin
end;

Заготовка готова, можно писать содержание процедуры: команды, которые она выполняет….

Сначала сделаем так, чтобы процедура отображала координатную сетку, заготовку шахматной доски…

Нам понадобятся процедуры рисования линий и процедура помещения точки в нужную точку:
Вот их синтаксис:

procedure MoveTo(X, Y: Integer); - помещает точку в нужные координаты
procedure LineTo(X, Y: Integer); проводит линию из текущей точки в точку с координатами x,y.

Примечание:
Учтите, что у компьютера координаты считаются от верхнего левого угла. То есть, левый верхний угол экрана имеет координаты (0,0). Правый нижний имеет координаты, которые зависят от расширения. Можете посмотреть их сами:
Пуск/ Настройка / Панель управления/ Экран / Параметры. И в окне Свойства экрана


посмотрите Разрешение экрана. Таким образом, разрешение экрана моего компьютера: 1280 на 1024. Следовательно, правый нижний угол у меня имеет координаты (1280; 1024).

Итак, продолжим:
9. В процедуру Paint1 поместите следующие строки:
Form1.Canvas. MoveTo (50,50);
Form1.Canvas. LineTo (200,50);
- проведет горизонтальную линию от точки (50,50) вправо на 150 точек.

Давайте проверим.
10. Переместитесь на процедуру обработки кнопки в редакторе кода или дважды щелкните по кнопке на форме.
11. Добавьте в процедуру одну строку: Paint1;
12. Запустите, проверьте. Щелкните по кнопке. Линия должна нарисоваться.

Далее, чтобы получилось поле, нам необходимо нарисовать еще 8 параллельных отрезков.
Можно писать так:
Form1.Canvas. MoveTo (50,50);
Form1.Canvas. LineTo (400,50);
Form1.Canvas. MoveTo (50,100);
Form1.Canvas. LineTo (200,100);
Form1.Canvas. MoveTo (50,150);
Form1.Canvas. LineTo (200,150); и т.д…

Кстати, проверьте, получаются ли линии?

А можно поступить по-другому. Мы ведь не зря изучали циклы.
Девять раз выполнить 2 оператора (что между begin и end). Девять, потому что 9 линий.

13. Напишите:

for i:= 1 to 9 do
begin
Form1.Canvas. MoveTo (50,50*i);
Form1.Canvas. LineTo (50*9,50*i);
end;

14. Естественно, чтобы это работало необходимо дописать раздел Var:

procedure Tform1.Paint1;
var i:integer;
begin

15. Запустите, проверьте. Программа должна рисовать линии.


Самостоятельно: постройте 9 вертикальных линий, чтобы получилась доска

 

На следующем уроке: начнем писать логическую игру..


посмотреть архив данной рассылки, Вы сможете на нашем сайте по адресу:

http:// umnik.rikt.ru/everest/distant/delphi.htm

P.S.

Обращаю ваше внимание на то, что данный курс ознакомительный. Если Вы желаете действительно научиться программированию и получить в руки мощный инструмент для профессиональной работы, то приглашаем Вас на наш основной курс по Delphi.

Вся информация находится по адресу: http://umnik.rikt.ru/everest/distant/delphi_os.htm

Учиться у нас выгодно. Не верите?


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphieverest
Отписаться

В избранное