Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Delphi séance N° 7
DESSINS ET ANIMATIONS
2- Préparations
Programmez la réaction à la création de la fiche :
Donner des valeurs initiales aux deux vitesses (variables Vx1 et Vx2)
Tracer la route dans le Canvas de imRoute :
deux lignes en traits pleins,
une ligne en traits discontinus (imRoute.Pen.Style:=psDash)
Placer les deux voitures sur la file de droite (celle du bas sur l'écran), la rouge à gauche de
la jaune
Dans la démo, la propriété Align de imRoute vaut alTop et elle fait 80 de haut. Les voitures
font 20 de haut. Le bord haut de la route est à 10, le bord bas à 70 et la ligne discontinue à 40.
1/2
3 - Animation de la voiture jaune
Dans la procédure qui définit le rôle du timer, il suffit d'augmenter aussi la valeur de la
propriété Left de sh1. La voiture jaune avancera vers la droite.
Si la voiture rouge va plus vite que la jaune, la rouge passe sur la jaune !
4 - Dépassement
Pour éviter les chocs, on peut faire changer la voiture rouge de file pour qu'elle dépasse la
jaune avant qu'il ne soit trop tard. On la remettra dans la file normale dès qu'elle aura dépassé
la jaune.
Pour cela il faut comparer la position de la voiture jaune après l'avoir déplacée avec la
position qu'aura la rouge quand on l'aura déplacée :
Si l'avant de la voiture rouge + sa vitesse est supérieur ou égal à l'arrière de la jaune
et si l'arrière de la rouge est inférieur ou égal à l'avant de la jaune :
on place la rouge dans la file de gauche
Sinon
on place la rouge dans la file de droite.
5 - Marche/Arrêt
Pour éviter d'avoir trop de boutons, on peut donner à un même bouton les rôles Marche ou
Arrêt alternativement. Ceci empêchera de cliquer sur Marche alors qu'on est déjà en marche
ou inversement.
6 - Départ
Pour replacer les voitures comme au début, on peut ajouter à la réaction au clic sur le bouton
Départ :
Placer les deux voitures sur la file de droite (celle du bas), la rouge à gauche de la jaune
(on peut recopier ce qui est déjà dans FormCreate),
Mettre Arrêt comme Caption du bouton Marche/Arrêt,
Il est plus facile de créer une procédure de réaction pour chaque SpinEdit.
On pourrait aussi changer la vitesse de l'animation en modifiant l'intervalle du timer.
2/2