You are on page 1of 6

unit Unit1;

interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls,math;
type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
angulo,angulo2: integer;
x,y,xc,v1,v2,v3,v4,sol,at1,at2,at3,at4,r1,r2,r3,r4,nub1,nub2,ola1,ola2:integer
;
aire,antena,nube,oleaje1:boolean;
rad,x1,y1,x2,y2,x3,y3,x4,y4:real;
c1,c2:integer;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
v1:=500;
v2:=600;
v3:=400;v4:=300;
sol:=10;
aire:=true;
x1:=150;
y1:=350;
x2:=250;
y2:=350;
x3:=350;
y3:=375;
x4:=400;
y4:=375;
at1:=320;
at2:=330;
r1:=330;
r2:=310;
r3:=420;
c1:=380;
c2:=410;
nub1:=100;
nub2:=250;
nube:=true;
ola1:=300;

ola2:=200;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
b:tpoint;
o1:array [0..3] of tpoint;
begin
image1.picture:=nil;
//sol
image1.Canvas.Brush.Color:=rgb(255,255,0);
image1.canvas.Pen.Width:=3;
image1.canvas.pen.color:=rgb(255,128,0);
image1.Canvas.Ellipse(10,10,90,90);
//nubes
image1.Canvas.Brush.Color:=rgb(0,255,255);
image1.canvas.Pen.Width:=3;
image1.canvas.pen.color:=rgb(98,98,255);
image1.Canvas.Ellipse(nub1,50,nub2,100);
if nube=true then
begin
nub1:=nub1-1;
nub2:=nub2-1;
end;
if nub1=0 then
begin
nube:=false
end;
if nube=false then
begin
nub1:=500;
nub2:=650;
end;
if nub1= 500 then
begin
nube:=true
end;
image1.Canvas.Ellipse(300,75,450,125);
//sobra del auto con respecto al sol
image1.Canvas.Pen.Width:=5;
image1.Canvas.Pen.Color:=rgb(64,64,64);
image1.canvas.MoveTo(410,400);
image1.canvas.LineTo(310,490);
image1.canvas.MoveTo(400,400);
image1.canvas.LineTo(300,490);
image1.canvas.MoveTo(390,400);
image1.canvas.LineTo(290,490);
image1.canvas.MoveTo(380,400);
image1.canvas.LineTo(280,490);
image1.canvas.MoveTo(370,400);
image1.canvas.LineTo(270,490);
image1.canvas.MoveTo(360,400);
image1.canvas.LineTo(260,490);
image1.canvas.MoveTo(350,400);
image1.canvas.LineTo(250,490);

image1.canvas.MoveTo(340,400);
image1.canvas.LineTo(240,490);
image1.canvas.MoveTo(330,400);
image1.canvas.LineTo(230,490);
image1.canvas.MoveTo(320,400);
image1.canvas.LineTo(220,490);
image1.canvas.MoveTo(310,400);
image1.canvas.LineTo(210,490);
image1.canvas.MoveTo(300,400);
image1.canvas.LineTo(200,490);
image1.canvas.MoveTo(290,400);
image1.canvas.LineTo(190,490);
image1.canvas.MoveTo(280,400);
image1.canvas.LineTo(180,490);
image1.canvas.MoveTo(270,400);
image1.canvas.LineTo(170,490);
image1.canvas.MoveTo(260,400);
image1.canvas.LineTo(160,490);
image1.canvas.MoveTo(250,400);
image1.canvas.LineTo(150,490);
image1.canvas.MoveTo(240,400);
image1.canvas.LineTo(140,490);
image1.canvas.MoveTo(230,400);
image1.canvas.LineTo(130,490);
image1.canvas.MoveTo(220,400);
image1.canvas.LineTo(120,490);
image1.canvas.MoveTo(210,400);
image1.canvas.LineTo(110,490);
image1.canvas.MoveTo(200,400);
image1.canvas.LineTo(100,490);
image1.canvas.MoveTo(190,400);
image1.canvas.LineTo(90,490);
image1.canvas.MoveTo(180,400);
image1.canvas.LineTo(80,490);
image1.canvas.MoveTo(170,400);
image1.canvas.LineTo(70,490);
image1.canvas.MoveTo(160,400);
image1.canvas.LineTo(60,490);
//efecto velocidad
b.X:=50;
b.Y:= 250;
o1[0]:=b;
b.X:=150;
b.Y:=ola1;
o1[1]:=b;
b.X:=200;
b.Y:=ola2;
o1[2]:=b;
b.X:=175;
b.Y:=300;
o1[3]:=b;
image1.Canvas.Pen.Width:=4;
image1.Canvas.Pen.Color:=rgb(0,0,0);
image1.Canvas.PolyBezier(o1);
if oleaje1=true then
begin
ola1:=ola1+1;

ola2:=ola2-1;
end;
if ola1=350 then
begin
oleaje1:=false
end;
if oleaje1=false then
begin
ola1:=ola1-1;
ola2:=ola2+1;
end;
if ola1=190 then
begin
oleaje1:=true
end;

image1.canvas.MoveTo(100,390);
image1.canvas.LineTo(150,390);
//carrito
image1.canvas.pen.color:=rgb(0,0,0);
image1.canvas.MoveTo(0,400);
image1.Canvas.LineTo(617,400);
image1.Canvas.Brush.Color:=rgb(0,0,0);
image1.Canvas.Ellipse(400,350,350,400); //rueda delantera
image1.Canvas.Ellipse(250,300,140,400); //rueda trasera
image1.canvas.MoveTo(250,350);
image1.Canvas.LineTo(350,380); //parte baja del auto
image1.canvas.MoveTo(400,380);
image1.Canvas.LineTo(420,380);
image1.canvas.MoveTo(420,380);
image1.Canvas.LineTo(420,340);
image1.canvas.MoveTo(420,340);
image1.Canvas.LineTo(180,240);
image1.canvas.MoveTo(180,240);
image1.Canvas.LineTo(180,300);

//antena del carrito


image1.Canvas.pen.color:=rgb(0,0,0);
image1.canvas.MoveTo(400,at1);
image1.canvas.lineto(400,330);
image1.canvas.MoveTo(410,at1);
image1.canvas.lineto(410,335);
image1.canvas.MoveTo(400,at1);
image1.canvas.lineto(410,at1);
image1.Canvas.Rectangle(400,r2,410,r1);
image1.Canvas.Rectangle(c1,400,c2,410);
if antena=true then
begin
at1:=320;
at2:=325;
end;
if at1=200 then
begin

at1:=320;
r2:=310;
r1:=330;
end
else
at1:=at1-1;
r2:=r2-1;
r1:=r1-1;
if c1=0 then
begin
c1:=380;
end
else
c1:=c1-1;
c2:=c2-1;
//movimiento viento
image1.Canvas.Pen.Color:=rgb(0,0,255);
image1.canvas.MoveTo(v1,100);
image1.canvas.lineto(v2,100);
image1.canvas.MoveTo(v1+50,150);
image1.canvas.lineto(v2+50,150);
image1.canvas.MoveTo(v3,200);
image1.canvas.lineto(v4,200);
image1.canvas.MoveTo(v3+100,300);
image1.canvas.lineto(v4+100,300);
if aire=true then
begin
v1:=v1-1;
v2:=v2-1;
v3:=v3-1;
v4:=v4-1;
end;
if v1=0 then
begin
v1:=500;
v2:=600;
v3:=300;
v4:=400;
end;
//sol
image1.Canvas.Brush.color:=rgb(230,235,41);
image1.Canvas.pen.Color:=rgb(230,235,41);
image1.Canvas.Ellipse(20,10+sol,90,60-sol);
image1.Canvas.Ellipse(20+sol,10,90-sol,60);
sol:=sol+1;
if sol=20 then sol:=10;

//efecto de las ruedas

image1.Canvas.Pen.Width:=5;
image1.Canvas.Pen.Color:=rgb(255,255,255);
image1.Canvas.MoveTo(trunc(x1),trunc(y1));
image1.Canvas.LineTo(trunc(x2),trunc(y2));
Angulo:=angulo+1;
rad:=degtorad(angulo);
x1:=195+(x1-195)*cos(rad)-(y1-350)*sin(rad);
y1:=350+(y1-350)*cos(rad)+(x1-195)*sin(rad);
x2:=195+(x2-195)*cos(rad)-(y2-350)*sin(rad);
y2:=350+(y2-350)*cos(rad)+(x2-195)*sin(rad);
if angulo=20 then
begin
angulo:=0;
x1:=140;
y1:=350;
x2:=250;
y2:=350;
end; //fin efecto rueda trasera
//efecto rueda delantera
image1.Canvas.Pen.Width:=5;
image1.Canvas.Pen.Color:=rgb(255,255,255);
image1.Canvas.MoveTo(trunc(x3),trunc(y3));
image1.Canvas.LineTo(trunc(x4),trunc(y4));
Angulo2:=angulo2+1;
rad:=degtorad(angulo2);
x3:=375+(x3-375)*cos(rad)-(y3-375)*sin(rad);
y3:=375+(y3-375)*cos(rad)+(x3-375)*sin(rad);
x4:=375+(x4-375)*cos(rad)-(y4-375)*sin(rad);
y4:=375+(y4-375)*cos(rad)+(x4-375)*sin(rad);
if angulo2=20 then
begin
angulo:=0;
x3:=350;
y3:=375;
x4:=400;
y4:=375;
end;
end;

end.

You might also like