Jak zrobić animację w turbo pascal?


(Tezarrus) #1

szukałem i nie znalazłem. kto pomoże? tak jak w temacie. jakąś tam prostą powiedzmy żeby się kwadracik w kółko kręcił. dzięki


(rozwalkompa) #2

Do tego potrzeba modułu Graph w TP (albo WinGraph w FreePascal'u).

Na przykład:

USES CRT, GRAPH;

VAR

ster, tryb:smallint;

BEGIN

DetectGraph(ster,tryb);

InitGraph(ster,tryb,'');

 setcolor(3);

 setfillstyle(1,0);

 bar(10,10,20,20);

delay(3000);

CloseGraph;

END.

Narysuje kwadrat i po 3 sekundach się zamknie :smiley:


(Tezarrus) #3

omg nie o to mnie chodzilo :D. miał być sobie kwadracik i on miał się okręcać

a nie pokazać. ja nie chciałem rysować kwadracika tylko wprawić go w ruch bo narysować to umiem...


(Ryan) #4

No to narysuj w miejscu czerwonego czarny a później narysuj obok czerwony. Powtórz 10 razy. Masz animację.


(Tezarrus) #5

nie czaje możesz podać przykładowy program . trochę skomplikowane i niezrozumiałe :smiley:


(adpawl) #6

proszę mały przykłąd

uses graph,crt;

const k=31/40;

var d,m,x,y,c:integer;


begin

 clrscr;

 d:=9;

 m:=1;

 c:=30000;

 initgraph(d,m,'');

 cleardevice;

 x:=getmaxx div 2;

 y:=getmaxy div 2;

setactivepage(0);

{ **twarz** }

 setcolor(yellow);

 setfillstyle(1,yellow);

 pieslice(x,y,0,360,200{x div 2});

{ **nos usta** }

 setcolor(red);

 setfillstyle(1,red);

 ellipse(x,y+50,200,340,100,50);

 pieslice(x,y+10,0,360,30);

{ **oczy** }

  setcolor(blue);

  setfillstyle(1,blue);

  pieslice(x-100,y-50,0,360,50);

  pieslice(x+100,y-50,0,360,50);

  delay(c);

 setactivepage(1);

 { **twarz** }

 setcolor(yellow);

 setfillstyle(1,yellow);

 pieslice(x,y,0,360,200{x div 2});

 { **nos usta** }

 setcolor(red);

 setfillstyle(1,red);

 ellipse(x,y+50,200,340,100,50);

 pieslice(x,y+10,0,360,30);

{* oczy *}

 setcolor(13);

 setfillstyle(1,13);

 pieslice(x-100,y-50,0,360,50);

 pieslice(x+100,y-50,0,360,50);

 delay(c);

 repeat

  setvisualpage(0);

  delay(c);

  setvisualpage(1);

  delay(c);

 until keypressed;

 closegraph;

end.

ps. kod wygrzebany gdzieś w starociach - więc proszę darować sobie uwagi dot. jego "jakości" :slight_smile:

zobacz też na google


(Ryan) #7

Nie mam TP pod ręką a i nie używałem ponad 10 lat, ale spróbuję.

USES CRT, GRAPH; 

VAR 

ster, tryb, pos:smallint;

BEGIN 

  DetectGraph(ster,tryb); 

  InitGraph(ster,tryb,''); 


  setfillstyle(1,0); 

  setcolor(8); 

  bar(1,1,100,100); 


  FOR pos:=1 TO 20 DO

  BEGIN

    setcolor(8); 

    bar(9+pos, 9+pos, 19+pos, 19+pos); 

    setcolor(3); 

    bar(10+pos, 10+pos, 20+pos, 20+pos); 

    delay(250); 

  END;


  delay(3000); 

  CloseGraph; 

END.