Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

A1exSun



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
USES Graph, CRT ;   { используются Graph и CRT     }
 {$I Initgraph.pas }  { процедура инициализации      }
 CONST r = 10;            { радиус подвижного шарика     }
 VAR   X1,Y1,X2,Y2,sx,sy : Integer ;  { переменные для ожив-}
       maxx,maxy,sxmove,symove:Integer;{ ления фрагмента     }
       Size : Word;                    { размер фрагмента    }
       P    : Pointer;                 { указатель на буфер  }
 BEGIN
   GrInit;                      { инициализация графики}
   maxx := GetMaxX;             { максимальное поле экрана}
   maxy := GetMaxY;
   X1 := maxx div 2 - r;        { Координаты области экрана,}
   Y1 := maxy div 2 - r;        { в который будет нарисован }
   X2 := X1 + 2 * r;            { шарик и которая  и будет  }
   Y2 := Y1 + 2 * r;            { сохраненным фрагментом    }
   sx := X1; sxmove :=3;        { Начальная точка движения  }
   sy := Y1; symove := -1;      { и шаг перемещения шарика  }
   SetFillStyle( SolidFill, Red);  { выбор типа заливки     }
   PieSlice( X1+r,Y1+r,0,360,r);   { рисование шарика       }
   Size := ImageSize(X1,Y1,X2,Y2); { фрагмент в байтах      }
   GetMem( P, Size );              { размещение буфера      }
   GetImage( X1,Y1,X2,Y2,P^  );    { фрагмент-> в буфер     }
   SetFillStyle(CloseDotFill,Blue);{ тип заливки фона       }
   Bar( 50,50, maxx-50,maxy-50);   { фоновая картинка       }
   repeat                          { Начинается движение шарика}
     PutImage( sx,sy,P^,XORPut );  { вывод шарика           }
     Delay( 12 );                  { пауза для АТ/12МГц     }
     PutImage( sx,sy, P^ ,XORPut );{ стирание шарика        }
 { ограничения на движение шарика в пределах поля фона:     }
     if ( sx< 50)or( sx>maxx-50-2*r) then sxmove := -sxmove;
     if ( sy< 50)or( sy>maxy-50-2*r) then symove := -symove;
     Inc( sx, sxmove );     { Следующая точка появления     }
     Inc( sy, symove );     { шарика на экране              }
 until KeyPressed;          { ...пока не нажата клавиша     }
 FreeMem( P, Size );        { освобождение памяти буфера    }
 CloseGraph                 { закрытие режима графики       }
END.

Всего записей: 1871 | Зарегистр. 25-11-2009 | Отправлено: 18:21 14-10-2011 | Исправлено: A1exSun, 18:27 14-10-2011
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru