Salut,
voici un petit exemple qui n'utilise ni la trigo ni la vitesse ni rien d'ailleur mais
qui simule le déplacement d'une balle avec un changement de direction dès qu'il y a contacte avec un bord
c'est très très simpliste mais comme tous le monde à l'air d'être un peut avare sur un bout de code c'est mieux que rien
C'est tellement simpliste que ça se passe de commentaire
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Balle: TShape;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
DLeft : Boolean = True;
DBottom : Boolean = True;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
If DLeft and (Balle.Left+Balle.Width < ClientWidth-5) Then
Balle.Left:=Balle.Left+5
Else DLeft := False;
If Not DLeft and (Balle.Left > 1) Then
Balle.Left:=Balle.Left-5
Else DLeft := True;
If DBottom and (Balle.Top+Balle.Height < ClientHeight -5) Then
Balle.Top := Balle.Top + 5
Else DBottom := False;
If not DBottom and (Balle.Top > 5) Then
Balle.Top := Balle.Top - 5
Else DBottom := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Doublebuffered := True;
end;
end.
@+
Cirec