Les bons tutos de Xavier : Comment faire un jeu de plateforme avec Scratch
5ème partie : Attrapez les toutes !
(Ce tuto est une adaptation en français sur Scratch 3.0 du tuto de Griffpatch sur Youtube)
Les éléments à collecter
On va ajouter à notre jeu de plateforme des éléments à collecter (comme les pièces dans Mario). Et pour ce faire, on va s’appuyer sur notre système d’affichage des plateformes.
Modification du système d’affichage des plateformes
On va améliorer légèrement notre code d’affichage des plateformes. On dupliquera ensuite le résultat pour faire celui des objets à collecter.
Dans le code des plateformes, plutôt que de faire un jeu d’instructions pour chaque plateforme, créons un bloc “Clone en x et y” :
On n’oublie pas de modifier le bloc d’initialisation en conséquence :
On n’a pas tenu compte des niveaux dans le code des plateformes. La gestion habituelle est de ne montrer une plateforme que si elle appartient bien au niveau qu’on veut montrer. Opérons les changements classiques nécessaires :
Système d’affichage des éléments à collecter
Dupliquons le sprite “Plateforme” et nommons cette copie “Élément à collecter”.
On se rend ensuite dans les costumes des éléments à collecter et on les efface tous, sauf le premier. On efface le dessin de la plateforme du premier pour le remplacer par l’élément à collecter. On va le faire ressembler à une pièce.
Il ne faut pas oublier de renommer ce costume “Pièce”.
Le code du sprite “Plateforme” a lui aussi été dupliqué dans le code du sprite “Élément à collecter” mais il faut faire quelques modifications pour l’utiliser correctement.
Plutôt que de déplacer les éléments à collecter, on peut les positionner directement par leurs coordonnées. Refaisons le bloc de définition des clones :
Pour afficher une pièce aux coordonnées (x=50, y=0), modifions alors le bloc d’initialisation :
Testons. On s’aperçoit que deux pièces apparaissent !!
En effet, il ne faut pas oublier le sprite d’origine. Autant pour les plateformes, la plateforme d’origine a bien sa place en position centrale (x=0, y=0), autant pour les pièces, nous n’avons pas besoin d’une pièce d’origine visible. L’astuce consiste donc à modifier le bloc de définition des clones :
Puis on déplace le sprite d’origine en dehors de l’écran de jeu une fois tous les clones placés :
Testons, seule la pièce clonée apparaît. Parfait !
Astuce pour placer des éléments à collecter
Imaginons que nous souhaitions placer 5 pièces, en tout, autour de nos plateformes. Comment connaître les coordonnées précises en x et y de chacune d’entre elles ? La réponse simple consiste à essayer des coordonnées approximatives, puis à affiner jusqu’à ce qu’on soit satisfait.
Griffpatch propose un outil très pratique pour aller plus vite. Insérons le code suivant dans la scène :
Ce code dit que si on appuie sur la touche ‘s’ du clavier alors on affecte à la variable SOURIS les valeurs des coordonnées où pointe la flèche de la souris. Puis on affiche la variable SOURIS sur l’écran de jeu.
Ainsi, il ne reste plus qu’à lancer le jeu, à placer la souris là où on voudrait voir apparaître une pièce, et à appuyer sur la touche ‘s’ :
Les coordonnées ainsi récoltées peuvent être utilisées pour placer les 5 pièces :
Testons ! Les pièces sont bien là, mais quand on les touche, elles ne disparaissent pas !
Faire disparaître les pièces
Pour faire disparaître une pièce quand elle est touchée par le joueur, il suffit d’ajouter un test conditionnel sur le bloc d’action des éléments à collecter :
Testons ! Les pièces disparaissent quand on les attrape.
Comptabiliser les pièces attrapées
On crée 1 variable globale :
- POINTS (qui indique le nombre de pièces attrapées)
Et on la place en bas de l’écran de jeu :
On initialise la variable à 0 dans le bloc d’initialisation des éléments à collecter :
Et on l’incrémente d’un point à chaque fois qu’on touche une pièce avec le joueur :
Testons. On peut gagner jusqu’à 5 points !
Fin de cette partie.