MARIO RUN : Mieux comprendre le fonctionnement
A partir du fichier de base contenant les sprites, on s'occupe d'abord au sprite Mario:
En ligne, voir le fichier pour la progression de l'activité
SPRITE MARIO :
1) LES VARIABLES:
On va créer des variables globales (c'est-à-dire accessibles par tous les sprites) pour gérer les différents aspects du jeu:
- variable "scrollx" : La plus importante car elle gère le déplacement horizontal du terrain. Son fonctionnement est très simple: elle est constamment diminuée de -5 jusqu'à la fin du niveau (quand Mario atteint le château). Elle sera alors remise à zéro pour passer au niveau suivant.
- variable "Gravity" : elle va permettre de gérer la position verticale (en Y) de Mario:
Son fonctionnement est simple : sa valeur est constamment ajoutée à la position vertical de Mario.
-> Tant que Mario touche le sol, sa valeur reste à zéro, et la position verticale de Mario ne change pas.
-> Dès que Mario ne touche plus le sol, on va faire diminuer progressivement sa valeur, et ainsi Mario va descendre, jusqu'à éventuellement toucher le bas de l'écran et mourrir.
- la variable "nowJump" : elle permet de savoir si Mario est en train de sauter ou pas. Elle peut simplement prendre 2 valeur : 0 si Mario ne saute pas ou 1 si il est en train de sauter.
- variable "Lifes" : c'est la variable qui compte le nombre de vies consommée. A chaque fois que Mario meurt (à cause d'un ennemi ou d'une chute), cette variable diminue.
- variable "Coins" : c'est la variable qui compte le nombre de pièces attrapées par Mario. A chaque fois que Mario touche une pièce, on l'augmente.
2) LE COMPORTEMENT:
- Initialisation : au lancement du jeu, on initialise toutes les variables, ainsi que la position du sprite Mario.
Lancée tout de suite après l'initialisation, elle diminue constamment la valeur de scollX comme mentionné avant.
Elle est chargée de gérer les costumes de Mario lors de la course.
Pour cela, elle vérifie constamment si la touche "Haut" n'est pas appuyée ET si Mario touche le sol

Si c'est bien le cas, elle fait se succéder les costumes de course de Mario.
- BOUCLE 3 : La boucle "Mario Jump":
Elle est chargée de gérer les costumes de Mario lors du saut.
Pour cela, elle vérifie constamment si la touche "Haut" est appuyée.
Si c'est le cas, elle fait se succéder les costumes correspondant au saut.
-- BOUCLE 4 : La boucle principale de gestion des variables de saut et de course:
-> SI Mario touche le sol ET que la touche "flèche haut" est pressée, ALORS on saute
-> SINON si Mario ne touche pas le sol ET que la variable JUMP est à 0 ALORS on tombe
-> FINALEMENT, dans tous les cas, on vérifie que Mario n'est pas décédé en touchant le bas de l'écran.
Au lancement du jeu on initialise le costume utilisé et la position verticale du terrain (position Y à zéro), puis on lance une boucle qui va sans cesse mettre à jour la position horizontale à partir de la variable "scrollx" dont on a vu le fonctionnement dans le sprite "MARIO".
La position en X est mise à jour avec la valeur de "scrollX", à laquelle on rajoute la largeur du sprite terrain multipliée par le numéro du terrain : ainsi chaque terrain sera situé à 480 pixel plus à droite que le terrain précédent, et lorsque la variable "scrollX" diminue, les terrains se déplacent vers la gauche les uns à la suite des autres.
ainsi on a :
pour le terrain 0, terrain 1, le terrain 2 etc....
voir fichier MARIO RUN phase 1 avec commentaires
- LES SPRITES "CHATEAU" :
- un message "next_LEVEL" (niveau suivant) est envoyé à l'ensemble des sprites. Lorsque les terrains reçoivent ce message, le costume du terrain passé au costume suivant.
Dans le sprite château, on a donc :