Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль / sidorov / Сидоров.DOC
Скачиваний:
30
Добавлен:
10.12.2013
Размер:
1.68 Mб
Скачать

Var Gd, Gm, I, j, k, Size, X, y, Xmax, Ymax: Integer;

P1, P2: Pointer; { тип указатель }

Begin

Gd := VGA; Gm:=2; InitGraph(Gd, Gm, 'c:\tp7\bgi');

Size := ImageSize(0, 0, 20, 100); { размер области }

SetLineStyle(0, 0, 3); { рисуем толстыми линиями }

PieSlice(10, 10, 0, 360, 10); { заполненный круг }

FillEllipse(10, 40, 10, 20); { заполненный эллипс }

Line(8, 60, 0, 100); Line(12, 60, 20, 100); { линии }

{ первый образ }

PieSlice(60, 10, 0, 360, 10);

FillEllipse(60, 40, 10, 20);

Line(60, 60, 60, 100);

{ второй образ }

GetMem(P1, Size); { P1 - указатель адреса для хранения первого образа }

GetImage(0, 0, 20, 100, P1^);{P1^ - содержимое (двоичный код) образа }

GetMem(P2, Size); { P2 - указатель адреса для хранения второго образа }

GetImage(50, 0, 70, 100, P2^);{P2^ - содержимое (двоичный код) образа }

x:=0; y:=200; { координаты начальной точки }

Readln; ClearDevice; Line( 0, 300, 600, 300); { "дорога" }

Repeat { имитация движения чередованием образов со смещением }

PutImage(x, y, P1^, 1); delay(50); PutImage(x, y, P1^, 1);

x:=x+10; { смещаем позицию на полшага }

PutImage(x, y, P2^, 1); delay(50); PutImage(x, y, P2^, 1);

x:=x+10

Until x > GetmaxX - 20; { достижение края }

FreeMem(P1, Size); FreeMem(P2, Size); CloseGraph

End.

В приведенной программе в память заносятся два образа человечка с разным положением ног. Экран очищается и в цикле происходит поочередное извлечение образов со смещением по оси "х". Каждое изображение хранится на экране 0, 05 с. , затем исчезает, вследствие перерисовки в режиме XorPut.

106

Практическое задание N 1. 63

1. Создать перемещающуюся слева направо фигурку чередованием двух или трех образов с озвучиванием перемещения. Варианты фигурок:

- катящееся колесо со спицами,

- шагающий ослик,

- летящая со взмахами крыльев птица,

- летящий вертолет (вид сверху),

- гребец в лодке,

- прыгающий мяч, деформирующийся при ударе.

2. Создать картину: перемещение машины (прямоугольника) желтого цвета на фоне гор (треугольников) синего, темно-серого, фиолетового, зеленого цветов. Определить заранее цвет машины на фоне гор, и вывести названия этих цветов над горами.

3. Создать картину: перемещение самолета (треугольника) белого цвета на фоне облаков (эллипсов) голубого, ярко-голубого, ярко-синего, ярко-серого цветов. Определить заранее цвет самолета на фоне облаков, и вывести названия этих цветов над облаками.

4. Создать "бегущую строку" ( в графическом режиме ). Для этого необходимо вывести на экран надпись и в цикле выводить в другой области экрана часть буфера от 0 до Size и от Size до 0, одновременно изменяя координату "х" начала вывода строки от GetMaxX до нуля.