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


Модифицировать программу "пчелиный рой":

 

1. Замедлить перемещение роя и запрограммировать изменение направления перемещения при достижении края экрана.

2. Ускорить перемещение роя и запрограммировать движение по вертикали с изменением направления перемещения при достижении края экрана.

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

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

5. Смоделировать движение кометы.

 

 

{------------------------------------------------------------------

Фрагмент N 8 программы "мячик в коробке"

( рисование движущейся окружности с анализом границ области по цвету пиксела .

------------------------------------------------------------------}

x1:=100; x2:=400; y1:=120; y2:=380;{Координаты углов наружной коробки}

dx:= -5; dy:= 3;{ начальный шаг движения мяча }

r:= 4;{ Радиус мяча }

SetColor(11); Rectangle(x1, y1, x2, y2);{ Наружная коробка }

Rectangle(x1+30, y1+70, x1+120, y1+90);{ Внутренние коробки }

Rectangle(x1+200, y1+90, x1+230, y1+200);

xc:= x1+90; yc:= y1+110; Circle(xc, yc, r);{ Мячик }

ax:= abs(dx); ay:= abs(dy); { число пикселов по ходу движения }

Repeat i2:= 0; i1:= 0;{ признаки удара о стенку равны нулю }

zx:= dx div abs(dx); zy:= dy div abs(dy); { направление движения }

for i:= 1 to ax do

if GetPixel(xc+(r+i)*zx, yc) > 0 then{ удар о вертикальную стенку }

begin dx:= -dx; i1:= 1; break end;

for i:= 1 to ay do

if GetPixel(xc, yc+(r+i)*zy) > 0 then{ удар о горизонтальную стенку }

begin dy:= -dy; i2:=1; break end;

if (i1+i2 = 0) then for i:= 1 to ax do for k:= 1 to ay do

if (GetPixel(xc+(r+i)*zx, yc+(r+k)*zy)>0) then { удар во внешний угол }

begin dy:= -dy; dx:= -dx; break end;

SetColor( 0); Circle(xc, yc, r);{ стирание мяча }

xc:= xc+dx; yc:= yc+dy;{ приращение координат }

SetColor(14); Circle(xc, yc, r){ рисование мяча }

Until Keypressed;

{-----------------------------------------------------------------}

Операторами Rectangle рисуется лабиринт, образованный прямоугольником, содержащим два вложенных в него прямоугольника. Внутрилабиринта начинается перемещение окружности (мячика) с центром (XC, YC) и радиусом "r". Принцип движения мяча: рисование, задержка, рисование цветом фона (стирание), приращение координат в цикле. По цвету пиксела анализируется положение края мяча относительно границ лабиринта (вертикальной и горизонтальной), а также внешний угол. Если мячик "достигает" границы, то соответствующее приращение координат изменяет знак. Момент смены направления движения озвучен.

 



Дата добавления: 2016-06-29; просмотров: 1337;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.008 сек.