Shape + Timer illusion d'une balle qui rebondit

Résolu
ozzdu38 Messages postés 5 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 19 mai 2005 - 17 mai 2005 à 16:07
ozzdu38 Messages postés 5 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 19 mai 2005 - 19 mai 2005 à 16:22
Bonjour,

Pour un project Delphi je doit crée un Shape qui donne l illusion de
rebondire dans le formulaire a l'aide d'un Timer pour cela je doit
tirer un chiffre alleatoire avec les fonction Randomize et Random pour
changer la direction et la couleur de mon shape (Rond evidement). Mon
probleme est que je ne sais pas du tous quoi ecrir dans la procedure
Timer.



merci davance pour vos reponse.



OzZ

7 réponses

cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
17 mai 2005 à 20:33
Salut OzZ



Voilà ce que je te propose :



procedure TForm1.FormCreate(Sender: TObject);

begin

DoubleBuffered := True;

Randomize;

VarX := Random(50)-25;

VarY := Random(50)-25;

Timer1.Interval :=5;

Shape1.Brush.Color := random($1000000);

Shape1.Pen.Color := Shape1.Brush.Color;

end ;



procedure TForm1.Timer1Timer(Sender: TObject);

begin

Shape1.Left : = Round(Shape1.Left + VarX);

Shape1.Top := Round(Shape1.Top + VarY);

if (Shape1.left<0) or (Shape1.left > ClientWidth-Shape1.Width) then

VarX : =-VarX;

if (Shape1.Top<0) or (Shape1.Top > ClientHeight-Shape1.Height) then

VarY := -VarY;

end ;

J'espère avoir une bonne note !



Ken@vo

<hr size ="2" width="100%">Code, Code, Codec !

[%3C/body ]
3
ozzdu38 Messages postés 5 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 19 mai 2005
17 mai 2005 à 20:53
merci beaucoup mais au risque de paraitre pour un gros nul:) je vien de rentré ton code mais rien ne bouge :s
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
18 mai 2005 à 12:18
Il ont des "Shapes ronds", vive la Bretagne, mdr, Kenavo...



Tu l'as rentré où le code, ozzdu38



Si tu es vraiment très débutant, voici ce qu'il faut faire avec l'inspecteur d'objets :



- double clique sur OnCreate pour Form1, et entre le code correspondant à FormCreate,

- double clique sur OnTimer pour Timer1, et là tu places le code correspondant à Timer1OnTimer.



Rien d'autre à faire que de lancer la compilation.



Bonne prog'



japee
0
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
18 mai 2005 à 16:49
Faut vérifier que la propriété enabled du timer à la valeur TRUE dans l'inspecteur d'objet ou bien tu rajoutes dans l'événement OnCreate du Form1 :

Timer1.Enabled := TRUE ;

Cordialement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
18 mai 2005 à 17:24
Oui, on ne sait jamais, WhiteHippo...



Mais je me dois de préciser à ozzdu38 que Enabled := True est la propriété par défaut .

Il lui suffit de faire Nouveau =>Application, de déposer un chapeau
rond heu... un Shape rond et un Timer tout neuf sur son Form, de
rentrer le code à Kenavo comme je le lui explique, et... il n'a plus
qu'à essayer de suivre la baballe des yeux, lol.

Évidemment, s'il se met à tout tripoter avant même d'avoir testé, alors...



Bonne prog'



japee
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
18 mai 2005 à 22:53
On
peut aussi vérifier que les variables de déplacement (VarX et VarY) ne
sont pas nulles, mais les deux nulles en même temps ..... ça serait pas
de bol !



Et danse le Shape rond (vivent les bretons !)



Ken@vo

<hr size="2" width="100%">Code, Code, Codec !




http://www.pourflorenceethussein.org/

[%3C/body ]
0
ozzdu38 Messages postés 5 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 19 mai 2005
19 mai 2005 à 16:22
c'est bon tous marche bien en fait javais juste fair une petiote erreur de declaration des VarX et VarY dans le main

tous marche bien merci tous le monde pour votre aide et merci kenavo pour ton code :)
0
Rejoignez-nous