27.06.2012, 17:00
|
#32
|
Оператор ЭВМ
Регистрация: 23.06.2012
Сообщений: 31
Написано 9 полезных сообщений (для 9 пользователей)
|
Ответ: Анимация "салют"
Так как для прозрачности нужно курить либы сделал так
Program explosions; Var dlina,i,skorost,koli4estvo,trololo:integer; si:array[1..50] of integer; co:array[1..50] of integer; x2:array[1..50] of integer; y2:array[1..50] of integer; x1:array[1..50] of integer; y1:array[1..50] of integer; r:array[1..50] of integer; g:array[1..50] of integer; b:array[1..50] of integer; begin dlina:=10; ///от 3 до 20. skorost:=150; /// от 1 до 150. koli4estvo:=35; /// от 1 до 50. trololo:=300; ///ограничитель фейерверка. Хоть он и квадратный, но не столь заметно. //внимание все параметры должны быть записаны целыми числами! for i:= 1 to koli4estvo do begin x1[i]:=getwidth/2; y1[i]:=getheight/2; si[i]:=random(360); co[i]:=random(360); x2[i]:=x1[i]+trunc(sin(si[i])*dlina); y2[i]:=y1[i]+trunc(cos(co[i])*dlina); drawline(x1[i],y1[i],x2[i],y2[i]); end; repaint; delay(150/skorost); setClip(x1[1]-trololo/2,y1[1]-trololo/2,trololo, trololo); repeat SetColor(255, 255, 255); FillRect(0, 0, GetWidth, GetHeight); for i:= 1 to koli4estvo do begin r[i]:=random(255); g[i]:=random(255); b[i]:=random(255); setcolor(r[i],g[i],b[i]); x1[i]:=x2[i]; y1[i]:=y2[i]; x2[i]:=x1[i]+trunc(sin(si[i])*dlina); y2[i]:=y1[i]+trunc(cos(co[i])*dlina); drawline(x1[i],y1[i],x2[i],y2[i]); drawline(x1[i]-1,y1[i]-1,x2[i]-1,y2[i]-1); end; repaint; delay(100/skorost); until (false); end.
жаль что setclip есть только квадратный
|
(Offline)
|
|