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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2010, 19:56   #1
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию графика

Всем спасибо. Нужно чтобы было движение по форме. У меня получается что телега движется первая и когда она останавливается начинает прыгать человек. Нужно чтобы они начинали двигаться одновременно после нажатии кнопки.

Код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
  var   t,x,y:word;
  begin
  with Image1.Canvas do
      begin
         t:=10;
          for x:=250 TO 400 DO
        begin
         if t>0 then
         t:=t+1;
         sss.Canvas.CopyRect(Rect(0,0,sss.Width,sss.Height),
         Image1.Canvas,Rect(x,145,CartWidth+x,145+CartHeight));
         CART(x,145);
         label1.Caption:=IntToStr(152-t)+'м/ч';
         Application.ProcessMessages;
         Sleep(t);
         Image1.Canvas.Draw(x,145,sss);
  end;


     begin
       t:=100;
    for x:=260 downTO 210 DO
        begin
         Sleep(t);
         if t>0 then
         t:=t-1;
         aaa.Canvas.CopyRect(Rect(0,0,aaa.Width,aaa.Height),
         Image1.Canvas,Rect(x,90,PersonWidth+x,90+PersonHeight));
         Person(x,90);
         Application.ProcessMessages;
         Image1.Canvas.Draw(x,90,aaa);

  
      t:=100;
      for y:=90 TO 105 DO

        begin
       Sleep(t);
         if t>0 then
         t:=t-1;
         Person(210,y);
         Application.ProcessMessages;
         Image1.Canvas.Draw(210,y,aaa); }

      end;
заранее благодарю. если можно то поправте в коде.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!

Последний раз редактировалось serj-07; 04.01.2010 в 20:01.
serj-07 вне форума Ответить с цитированием
Старый 05.01.2010, 17:05   #2
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

мой исходник
Вложения
Тип файла: rar графика.rar (173.3 Кб, 9 просмотров)
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 05.01.2010, 17:08   #3
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

А тут то вам чем не понравилось
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 07.01.2010, 18:21   #4
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

Вот что уменя получилось с таймерами, но осталось все как раньше.
человек прыгает потом только телега едет, одновременно не получилось.
и теперь не могу сделать движение равнозамедленное.

Код:

procedure Cart(xt,yt:INTEGER);
  begin
   with Form1.Image1.Canvas DO
     begin
         // телега
      brush.Color:= clRed;
      pen.Color:=clblack;
      Rectangle (xt,yt,xt+100,yt+5);
      Ellipse(xt+10,yt+5,xt+30,yt+25);
      Ellipse(xt+70,yt+5,xt+90,yt+25);
     end;
  end;

procedure Person(xp,yp:INTEGER);
   begin
    with Form1.Image1.Canvas DO
       begin
             // человек
        brush.Color:= clRed;
        pen.Color:=clblack;
        Ellipse(xp+5,yp,xp+20,yp+15);
        polygon([point(xp,yp+15), point(xp+12,yp+40),
        point(xp+25,yp+15),point(xp,yp+15)]);
        MoveTo(xp,yp+15);
        LineTo(xp,yp+35);
        MoveTo(xp+25,yp+15);
        LineTo(xp+25,yp+35);
        MoveTo(xp+8,yp+35);
        LineTo(xp+8,yp+55);
        MoveTo(xp+16,yp+35);
        LineTo(xp+16,yp+55);
       end;
   end;

procedure TForm1.FormCreate(Sender: TObject);
  begin
    With Image1.Canvas do
       begin
        DoubleBuffered:=true;
        Image1.Canvas.Brush.Color:=RGB(55,155,255);
        Image1.Canvas.FillRect(rect(0,0,image1.Width,image1.Height));
                   

         sss:=TBitMap.Create;
         sss.Width:=CartWidth;
         sss.Height:=CartHeight;

         aaa:=TBitMap.Create;
         aaa.Width:=PersonWidth;
         aaa.Height:=PersonHeight;
        end;
   end;

procedure TForm1.Timer1Timer(Sender: TObject);
  var
  x,y: Word;
 begin
    With Image1.Canvas do
    begin
     For x:=260 DownTo 210 do
        begin
          aaa.Canvas.CopyRect(Rect(0, 0, aaa.Width, aaa.Height),
          Image1.Canvas,Rect(x, 90, PersonWidth + x, 90 + PersonHeight));
          Person(x, 90);
          Application.ProcessMessages;
          Image1.Canvas.Draw(x, 90, aaa);
        end;
           begin
             for y:=90 TO 115 DO
               begin
                aaa.Canvas.CopyRect(Rect(0,0,aaa.Width,aaa.Height),
                Image1.Canvas,Rect(210,y,PersonWidth+210,y+PersonHeight));
                Person(210,y);
                Application.ProcessMessages;
                Image1.Canvas.Draw(210,y,aaa);
                brush.Color:= RGB(55,155,255);
                pen.Color:=RGB(55,155,255);
                polygon([point(260,105),point(272,130),point(285,105),point(260,105)]);
                Ellipse(265,90,280,105);
                MoveTo(260,105);
                LineTo(260,125);
                MoveTo(285,105);
                LineTo(285,125);
                MoveTo(268,125);
                LineTo(268,145);
                MoveTo(276,125);
                LineTo(276,145);

                if y=115 then
                  brush.Color:= clRed;
                if y=115 then
                 pen.Color:=clblack;
                 Ellipse(215,115,230,130);
                 polygon([point(210,130),point(222,155),point(235,130),point(210,130)]);
                 MoveTo(210,130);
                 LineTo(210,150);
                 MoveTo(235,130);
                 LineTo(235,150);
                 MoveTo(218,150);
                 LineTo(218,170);
                 MoveTo(226,150);
                 LineTo(226,170);
                 timer1.Enabled:= false;

               end;
        end;
    end;
 end;

 procedure TForm1.Timer2Timer(Sender: TObject);
  var
  x: Word;
 begin
   With Image1.Canvas do
     begin
     For x := 250 to 400 do
        begin
          sss.Canvas.CopyRect(Rect(0, 0, sss.Width, sss.Height),
          Image1.Canvas,Rect(x, 145, CartWidth + X, 145 + CartHeight));
          CART(x,145);
          Application.ProcessMessages;
          Image1.Canvas.Draw(x,145,sss);

           brush.Color:= RGB(55,155,255);
           pen.Color:=RGB(55,155,255);
           Ellipse(320,150,340,170);
           Ellipse(260,150,280,170);
           Rectangle (250,145,350,150);

           if x=400      then
           brush.Color:= clRed;
           if x=400      then
           pen.Color:=clblack;
           Ellipse(470,150,490,170);
           Ellipse(410,150,430,170);
           Rectangle (400,145,500,150);
           timer2.Enabled:= false;

         end;
     end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
   begin
     timer1.Enabled:= true;
     timer2.Enabled:= true;
   end;

end.
Вложения
Тип файла: rar Копия графика.rar (174.2 Кб, 7 просмотров)
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 08.01.2010, 23:37   #5
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

закройте тему.
всем спасибо.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика** Lenivec** Паскаль, Turbo Pascal, PascalABC.NET 2 28.04.2010 23:41
Графика С++ Smile.id Помощь студентам 4 04.01.2010 21:30
графика alex(21) Паскаль, Turbo Pascal, PascalABC.NET 21 15.07.2009 12:34
графика ben95 Общие вопросы Delphi 3 06.02.2008 22:24
Графика С++ kommunist Общие вопросы C/C++ 6 14.01.2008 15:21