TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

[ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 8.6. Программа демонстрирует получение эффекта движения изображения прицела под управлением клавишей-стрелок клавиатуры с выводом координат центра прицела.  
 
Демонстрация  Внимание: будет работать только если Turbo Pascal установлен в каталог C:\TP и каталог C:\TP\BGI содержит необходимый файл egavga.bgi.
Program Sight; 
  Uses Crt, Graph; {подключение к программе

                    библиотек Crt и Graph} 
  Const Step = 5; {шаг изменения координат центра прицела } 
    Instr = 'УПРАВЛЕНИЕ ДВИЖЕНИЕМ ПРИЦЕЛА - СТРЕЛКИ, ВЫХОД - ESC'; 
  Var 
    GrDriver, GrMode : Integer; {тип и режим работы графического драйвера} 
    X, Y             : Integer; {координаты центра прицела} 
    XStr, YStr       : String; 
    Ch               : Char; 
{-----------------------------------------------------------} 
Procedure MakeSight(X, Y : Integer); {процедура рисования прицела} 
  Begin SetColor(White); 
    Circle(X, Y, 80); 
    SetColor(LightGreen); 
    Line(X-80, Y, X+80, Y); Line(X, Y-63, X, Y+63); {вывод осей прицела} 
    SetColor(LightRed); Circle(X, Y, 2); {окружность в центре прицела}
    Str(X, XStr); Str(Y, YStr); {перевод координат в строковый тип} 
    SetColor(Yellow); 
    OutTextXY(X+5, Y-35, 'x=' + XStr); {вывод координат центра прицела } 
    OutTextXY(X+5, Y-20, 'y=' + YStr) 
  End; 
{-----------------------------------------------------------} 
BEGIN 
  GrDriver := Detect; 
  InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); 
  SetColor(LightGray); 
  X := GetMaxX div 2; Y := GetMaxY div 2; {координаты центра экрана} 
  Rectangle(50, 425, 600, 460); {рисование рамки } 
  OutTextXY(120, 440, Instr); 
  MakeSight(X, Y); {рисование прицела в центре экрана} 
  While TRUE do {цикл работы программы до прерывания по клавише ESC} 
    begin 
      Ch := ReadKey; 
      Case Ch of 
        #27: begin CloseGraph; Halt(1) end; {выход по клавише ESC} 
        #75: X: = X-Step; {изменение координат x, y нажатием стрелок} 
        #77: X: = X+Step; {"влево", "вправо", "вверх", "вниз" } 
        #72: Y: = Y-Step; 
        #80: Y: = Y+Step 
      end;
      ClearViewPort; { очистка графического экрана } 
      SetColor(LightGray); {восстановление рамки с надписью} 
      Rectangle(50, 425, 600, 460); 
      OutTextXY(120, 440, Instr); 
      MakeSight(X, Y) {рисование прицела в текущих координатах} 
    end; CloseGraph; 
END.
 

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz