|
Télécharger le .dir commenté correspondant à cette étape de l'exercice (bouton droit -> enregistrer la cible) |
Cette étape
ne pose aucune difficulté.
Si cette demande est exprimée par un concepteur, son implémentation
ne devrait pas prendre plus de quelques minutes au développeur qui aurait
travaillé selon la méthode indiquée ici.
En effet, pour faire varier la période de notre pendule (sa "vitesse"), il va suffire de faire varier l'incrément de notre angleMoteur. Précédemment, nous l'incrémentions à chaque fois de 1° (0.0174533 radians). Il est clair que si nous l'incrémentons de 5°, l'angleDecart, qui est commandé par l'angleMoteur variera plus vite et donc notre pendule oscillera plus rapidement.
Il nous suffit
donc de placer un deuxième curseur avec sa glissière et sa poignée
(ici dans les sprite(26) et sprite(27) respectivement - en
gardant bien la même convention que nous avions choisie sur l'ordre des
deux éléments dans le scénario).
Puis nous attachons au nouveau sprite(poignée) - le 27 -, le
script que nous avons déjà écrit. Cela suffit, sans avoir
à écrire une seule ligne de code supplémentaire, pour disposer
d'une nouvelle proportion, commandée par un nouvel élément
d'interface, et totalement indépendante de la première.
Ensuite, dans la méthode osciller() de notre pendule, il suffit
de terminer la modification en écrivant, à la dernière
ligne de la méthode, là où on incrémente l'angleMoteur
:
angleMoteur = angleMoteur + (5*sprite(27).proportion)*.0174533
Selon le même principe que précédemment , on voit que proportion du sprite(27) variant entre 0 et 1, en multipliant sprite(27).proportion par 5, on obtient un coefficient qui variera entre 0 et 5, que l'on applique à l'incrément de l'angleMoteur qui sera ainsi augmenté d'une valeur variant entre 0 et 5°.
Cet exemple illustre
le principe de ce que l'on appelle du code réutilisable.
On avait déjà approché cette notion lors de la modélisation
de nos balles : on voit ici que ce principe peut se généraliser.
D'une manière générale, dès que l'on s'aperçoit
qu'on est en train d'écrire du code qui fait la même chose
que ce qu'on a déjà écrit, il faut écrire
du code réutilisable.
On voit également
que si on avait codé les valeurs "en dur" dans le premier script
de la poignée, on aurait été obligé d'écrire
un deuxième script pour la deuxième poignée, puisque les
valeurs d'extrémité, par exemple, ne sont pas les mêmes.
Et ainsi de suite si nous avions eu 37 poignées. Selon notre technique,
nous pourrions aussi bien avoir 257 poignées que nous n'aurions toujours
qu'un seul script.
Nous ré-illustrerons ceci lorsque nous fabriquerons des ascenseurs.
Pour un curseur
à glissière verticale, il suffirait de dupliquer notre script,
de remplacer les locH par des locV, les right et
les left par des bottom et des top, les mouseH
par des mouseV. Pour plus de cohérence, on renommerait la propriété
gauche en haut et droite en bas ou inversement,
et on appellerait largeur, hauteur. C'est tout.
On récupèrerait alors une proportion de la même
manière, mais avec une glissière verticale.
| Retour vers la quatrième étape |