Показать сообщение отдельно
Старый 27.06.2012, 17:00   #32
AntiRock
Оператор ЭВМ
 
Аватар для AntiRock
 
Регистрация: 23.06.2012
Сообщений: 31
Написано 9 полезных сообщений
(для 9 пользователей)
Ответ: Анимация "салют"

Так как для прозрачности нужно курить либы сделал так
Program explosions;
Var
  
dlina,i,skorost,koli4estvo,trololo:integer;
  
si:array[1..50of integer;
  
co:array[1..50of integer;
  
x2:array[1..50of integer;
  
y2:array[1..50of integer;
  
x1:array[1..50of integer;
  
y1:array[1..50of integer;
  
r:array[1..50of integer;
  
g:array[1..50of integer;
  
b:array[1..50of 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,trololotrololo);


repeat
SetColor
(255255255);
FillRect(00GetWidthGetHeight);
  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)
 
Ответить с цитированием