Witam proszę o pomoc muszę napisać jakaś najprostszą animacje w Turbo Pascal (w 2d) proszę o pomoc obiecuje dać więcej punktów jak będę miał :) Aaa program musi posiadać menu i moduł używania myszki a w dodatku komentarz w każdej lini to czego są dane instrukcje i co robią dziękuje z góry za pomoc :) Wrazie jakiś wątpliwości co do wykonania programu gg : 1847209
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.
Aby stworzyć menu wystarczy użyć instrukcji switch i case . Aby mieć kursor na ekranie wystarczy:
Procedure ShowCursor; Assembler; Asm mov ax, 0001h int 33h End;
Aby sprawdzić pozycję kursora:
BX - jakie przyciski zostały naciśnięte, CX - pozycja kursora w poziomie (współrzędna X), DX - pozycja kursora w poziomie (współrzędna Y).
Procedure GetStatus(Var X, Y, ButtonStatus :Integer); Var Temp1, Temp2, Temp3 :Word; Begin Asm mov ax, 0003h int 33h mov Temp1, bx mov Temp2, cx mov Temp3, dx End; ButtonStatus := Temp1; X := Temp2; Y := Temp3; End;
Nie pisze w TP od ponad 7 lat więc nie są to górnolotne pomysły ale na pewno ułatwią Tobie życie - od posklejać to w jedno i masz zadanie zrobione :) .
Program wyświetlający animację to np.
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.
Aby stworzyć menu wystarczy użyć instrukcji switch i case .
Aby mieć kursor na ekranie wystarczy:
Procedure ShowCursor; Assembler;
Asm
mov ax, 0001h
int 33h
End;
Aby sprawdzić pozycję kursora:
BX - jakie przyciski zostały naciśnięte,
CX - pozycja kursora w poziomie (współrzędna X),
DX - pozycja kursora w poziomie (współrzędna Y).
Procedure GetStatus(Var X, Y, ButtonStatus :Integer);
Var
Temp1, Temp2, Temp3 :Word;
Begin
Asm
mov ax, 0003h
int 33h
mov Temp1, bx
mov Temp2, cx
mov Temp3, dx
End;
ButtonStatus := Temp1;
X := Temp2;
Y := Temp3;
End;
Nie pisze w TP od ponad 7 lat więc nie są to górnolotne pomysły ale na pewno ułatwią Tobie życie - od posklejać to w jedno i masz zadanie zrobione :) .