Scratch : un jeu vidéo spatial (tutoriel) – partie 2

Publié le 21 janvier 2017 par Jfcauche @jeffakakaneda

Chose promise, chose due. Poursuivons les aventures de notre vaisseau spatial assailli par des (presque) hordes d’aliens. Réglons tout d’abord le premier souci : si vous avez opté pour la possibilité de faire pivoter le vaisseau, celui-ci ne tire cependant que vers le haut. Plutôt gênant. Pour y remédier, j’ai tout simplement créé une variable (une variable étant un espace permettant de stocker une information : texte ou valeur) qui va permettre de conserver la valeur d’orientation du vaisseau et de la réutiliser.

Modifions donc notre code comme suit sur le sprite « spaceship ».

Ajoutons dans les mouvements du vaisseau les instructions pour stocker cette valeur.

Enfin, orientons la balle ou plutôt notre super arme intergalactique en fonction de cette dernière.

C’est déjà beaucoup mieux. Mais cela manque un peu de son. Par facilité, je vais utiliser les sons propres à la bibliothèque de Scratch mais rien ne vous empêche d’ajouter vos propres sons. Modifions ainsi le code de la balle.

On n’utilise pas la commande « Jouer le son ‘pop’ jusqu’au bout » car celle-ci bloquerait l’exécution du script le temps d’entendre le son. Avec « Jouer le son ‘pop' », le son est joué mais les commandes qui suivent sont exécutées immédiatement et donc en parallèle. « Jouer le son ‘XXX’ jusqu’au bout » nous sera utile par exemple pour une musique, si vous souhaitez ajouter un fond sonore au jeu. On peut ainsi charger une musique dans la partie « sons » du décor et ensuite la jouer en boucle. Pensez culture libre (à partager sans modération !) en utilisant des sites comme CCMixter, Jamendo, Auboutdufil, Dogmazic et bien sur l’incontournable bibliothèque d’Alexandrie ou caverne d’Ali Baba, Archive.org. Pour ma part, j’ai récupéré une de mes productions ambient que vous pouvez retrouver notamment sur mon Bandcamp en téléchargement libre et gratuit.

Occupons-nous maintenant de nos aliens. J’ai ajouté plusieurs costumes différents en récupérant sur le site OpenClipArt plusieurs images de vaisseau spatial. J’en ai profité pour changer le costume du sprite « spaceship » pour quelque chose de plus moderne. Pour les aliens, j’ai chargé plusieurs costumes que j’ai respectivement nommés UFO1, UFO2, UFO3 et UFO4. C’est très important que les noms soient similaires car cela permet d’ajouter un peu d’aléatoire dans le choix des costumes grâce à la modification suivante du code de notre alien (ex – « bananas »).

Comme vous pouvez le remarquer, les aliens se mettent à la file et arrivent un par un, ce qui est loin de rendre notre jeu passionnant. Nous allons leur permettre d’arriver par vagues de manière aléatoire. Pour cela, il faut utiliser la fonction « clone » de Scratch. Un clone n’est autre qu’une copie de votre sprite à laquelle on va pouvoir donner un certain nombre d’instructions. Nous modifions donc le code de notre alien comme ceci.

Cela reste encore assez facile, tout simplement parce que le temps de « renouvellement » de notre alien est compris entre 1 et 5 secondes. Cinq secondes dans un jeu vidéo, c’est long. De même, la vitesse de déplacement des aliens est assez lente (4 secondes pour atteindre le bas de l’écran). Nous allons donc ajouter un peu de difficulté au fur et à mesure du jeu, c’est-à-dire diminuer le temps d’attente et augmenter la vitesse de déplacement chaque fois que le joueur abat dix aliens. Vous allez voir que rapidement cela va devenir très instable. Pour cela, je vais créer trois variables supplémentaires : une pour le temps d’attente, une pour la vitesse et enfin une troisième qui va me permettre de calculer de dix en dix pour le score.

Et voila le travail ! Au bout d’un certain temps, l’espace devient plus fréquenté que l’autoroute Lille-Dunkerque un vendredi soir à 18h. Néanmoins pour corser le tout, on peut dupliquer le sprite de notre alien en prenant soin sur sa copie de créer une nouvelle variable pour la coordonnée X sinon nos deux sprites seront à la même position car se référant à la même coordonnée X.

Le jeu est-il fini ? Non. Il s’agit plus d’un moteur de jeu que d’un jeu vidéo. Il reste encore beaucoup de choses à faire pour lui donner un aspect un peu plus pro. Pas de code pour l’instant. Je vous laisse chercher. La suite au… prochain épisode !


Classé dans:Code, Scratch, Tutoriels Tagged: code, jeu vidéo, scratch, Spacewar