
29.03.2012, 22:56
|
Прохожий
|
|
Регистрация: 28.03.2012
Сообщения: 6
Репутация: 10
|
|
У меня получилось, но как сделать так что бы планета не оставляла следов при передвижении?
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Draw;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type Planeta=record
x,y,d,d2,r1,r2:integer;
t:real;
end;
var
Form1: TForm1;
s,z,m,v:planeta;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled:= false;
s.d:= 50; s.d2:=s.d div 2;
s.x:= Image1.Width div 2;
s.y:= Image1.Height div 2;
m.d:= 10;
m.d2:= m.d div 2;
m.r1:=100;
m.r2:=60;
m.t:=0;
m.x:=m.r1*trunc(cos(m.t));
m.y:=m.r2*trunc(sin(m.t));
end;
procedure tform1.Draw;
begin
image1.Canvas.Ellipse (s.x-m.r1,s.y-m.r2,s.x+m.r1,s.y+m.r2) ;
image1.Canvas.Ellipse(s.x-s.d2,s.y-s.d2,s.x+s.d2,s.y+s.d2);
image1.Canvas.Ellipse(m.x-m.d2,m.y-m.d2,m.x+m.d2,m.y+m.d2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:= true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
m.t:=m.t+0.06;
//if m.t>2*pi then m.t:=0;
m.x:=s.x+round(m.r1*cos(m.t));
m.y:=s.y-s.r2-round(m.r2*sin(m.t));
draw;
end;
end.
lmikle: Пользуемся тегами!!!
http://rghost.ru/37302439
|