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
4
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
2
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
4
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