Scratch : initiation à l'algorithmique

TP3 : Les conditons



Tirs croisés

Nous avons un vaisseau que le joueur dirige, une soucoupe à affronter... Il est temps de permettre à tout ce beau monde de s'étriper.

Exercice 1

Soyons prudent et commençons par armer notre vaisseau.

Nous voulons que la balle reste invisible jusqu'à ce que l'utilisateur appuie sur la barre espace. A ce moment, la balle doit aller au niveau du vaisseau, devenir visible et commencer à se déplacer... Les blocs permettant de cacher et montrer le projectile, se situent dans le menue Apparence.

Nous allons maintenant utiliser un bloc de mouvement très utile : Ce bloc permet de déplacer un objet vers le pointeur de la souris ou un autre objet. Utilisez son menu déroulant pour sélectionner le vaisseau, à la place du pointeur de la souris.

Exercice 2

Bon c'est mieux, mais ce projectile qui reste coincé dans le bord de l'écran, ce n'est pas très joli... Ce qu'il faudrait c'est pouvoir cacher à nouveau le projectile, lorsqu'il atteind le bord de l'écran. Et puis on voudrait pouvoir tirer plusieurs fois. Pour le moment, nous n'avons qu'une unique chance de toucher la soucoupe volante.

Nos problèmes sont liés à l'utilisation de la boucle Répéter indéfiniment. En fait ce que nous aimerions, c'est une boucle qui s'arrête lorsque le projectile touche le bord de l'écran. Et c'est justement ce que nous permet le bloc de contrôle répéter jusqu'à. Comme vous le voyez, ce bloc dispose d'un espace vide en forme, d'hexagone :



Cet hexagone correspond à une condition, c'est-à-dire un évènement, qui induira la fin de la boucle. Dans notre cas, la condition est que le projectile touche les bords.

Comment notre projectile peut-il savoir qu'il touche un bord ? Exactement comme un robot : à l'aide de capteur. Si vous jettez un oeil dans le menu Capteur, vous allez trouver cet hexagone bleu :



Le menu déroulant permet, entre autre, de sélectionner bord :



En associant ces deux blocs, vous allez obtenir la boucle suivante :



Utilisez-la à la place de la boucle répéter indéfiniement.

Si vous testez votre programme, vous ne constaterez aucun changement. C'est normal : pour faire disparaître la balle, il nous faut la cacher, une fois que la boucle est finie. Au final, pour contrôler notre projectile nous obtenons le programme suivant :



Exercice 3

Il nous reste à modifier le comportement de la soucoupe volante pour qu'elle disparaisse lorsqu'elle touche le projectile. C'est très simple : là aussi, il suffit de remplacer la boucle répéter indéfiniment par une boucle jusqu'à et de cacher la soucoupe volante, une fois que cette boucle est terminée.... Oui, c'est exactement la même chose que dans l'exercice 2 !

Malheureusement, il y a un bug dans notre programme et il en plus il n'est pas facile à trouver. En fait, lorsque le projectile est caché, il est simplement invisible : la soucoupe volante peut toujours le percuter et mourir, alors que le joueur n'a pas tiré. Aussi, avant de cacher le projectile, nous allons le mettre très loin en dehors de la zone d'affichage,par exemple au point de coordonnées (1000,1000).