Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2012, 15:37   #1
zhenka619
Дурачок
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 33
Злость TurboPascal graph - перемещение прямоугольника

Вот код, надо что бы двигался прямоугольник , не пойму почему не работает =( Заранее спасибо



Код:
    Program graphika1;
    uses crt, graph;
    var gd, gm, ax, ay, bx, by, z :integer;
    color: byte;
    ch : char;
    begin
    ax:=200;
    ay:=200;
    bx:=400;
    by:=400;
    clrscr;
    gd:=detect;
    initgraph (gd,gm,' ');
    repeat
    cleardevice;
    clrscr;
    rectangle(bx,by,ax,ay);
    if keypressed then begin
    ch:=readkey;
    case ch of
    's':begin ay:=ay+30;
              by:=by+30;
              end;
   'w':begin ay:=ay-30;
             by:=by-30;
             end;
   'a':begin ax:=ax-30;
             bx:=bx-30;
             end;
   'd':begin ax:=ax+30;
             bx:=bx+30;
             end;
   end;
   end;
   delay(100);

   until ch=#27
  end.
"Никогда программы не содержат так мало ошибок, как при отсутствии каких-либо средств отладки."
Никлаус Вирт... Помог нажми на весы
zhenka619 вне форума Ответить с цитированием
Старый 30.05.2012, 16:41   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Вот код, надо что бы двигался прямоугольник , не пойму почему не работает =( Заранее спасибо
по всей видимости, не вы писали данный код?!

Движется прямоугольник. нажимайте клавиши s w a d
для перемещения.

p.s. только из-за cleardevice моргает картинка так, что мама не горюй!!


я бы примерно такой код предложил:
Код:
program graphika1;
uses crt, graph;
var gd, gm, ax, ay, bx, by, z: integer;
  color: byte;
  ch: char;
begin
  ax := 200;
  ay := 200;
  bx := 400;
  by := 400;
  clrscr;
  gd := detect;
  initgraph(gd, gm, ' ');
  cleardevice;
  setcolor(2);
  rectangle(bx, by, ax, ay);
  repeat
    if keypressed then begin
      ch := readkey;
      if ch in ['s','w','a','d'] then 
      begin
        {сначала сотрём старый прямоугольник - выведем его цветом фона}
        setcolor(0);
        rectangle(bx, by, ax, ay);
        case ch of
          's': begin ay := ay + 30;
                     by := by + 30;
               end;
          'w': begin ay := ay - 30;
                     by := by - 30;
               end;
          'a': begin ax := ax - 30;
                     bx := bx - 30;
               end;
          'd': begin ax := ax + 30;
                     bx := bx + 30;
               end;
         end;
         {выведем в новой позиции прямоугольник}
         setcolor(2);
         rectangle(bx, by, ax, ay);
       end;
    end;
    delay(100);

  until ch = #27
end.

Последний раз редактировалось Serge_Bliznykov; 30.05.2012 в 16:51.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты прямоугольника Ins1De Общие вопросы C/C++ 13 18.12.2011 23:17
Площадь прямоугольника AndrSil Помощь студентам 5 22.04.2010 23:23
TurboPascal сбрасывает в режиме Graph Foxtrot_1 Паскаль, Turbo Pascal, PascalABC.NET 13 24.06.2009 23:36
Вращение прямоугольника Ponaroshku Общие вопросы Delphi 0 25.05.2009 23:09
Стороны прямоугольника Caragius Microsoft Office Excel 8 27.12.2008 03:02