Animation
Présentation :
Dans cette version vous allez :
- traiter les ruptures de terrain : le lutin tombe dans le vide,
- animer le lutin dans son déplacement.
Notions abordées :
Cette évolution ne comprend pas de notion nouvelle mais implique un niveau d'analyse de plus en plus délicat. Pour arriver à s'en sortir, il faut vraiment écrire le pseudo-code avant de commencer à programmer.
Ressources en entrée :
Vous pouvez partir de la version que vous venez de réaliser dans l'étape précédente ou du projet à l'adresse :
https://scratch.mit.edu/projects/354572665
Réalisation :
Chute en cas de discontinuité (trou) du terrain :
Quand le lutin avance et ne touche pas le noir, l'algorithme appelle la procédure "descendre sur le terrain" pour suivre le terrain, même s'il descend. En cas de rupture du terrain, le lutin arrive au-dessus du vide, et descend intantanément jusqu'à la première zone noire qu'il va trouver en-dessous.
C'est trop brutal, on va améliorer ce cas pour que la chute soit progressive avec l'effet de la gravité. Pour ça, on va modifier la procédure "descendre sur le terrain" pour prévoir 3 cas:
- (cas n°1) Si le lutin touche le noir, on remonte au-dessus du terrain. (Ce cas ne devrait pas se produire ici, c'est une précaution)
- Sinon on commence par descendre le lutin d'une hauteur égale à sa vitesse horizontale, puis on teste si il touche le noir :
(cas n°2) si oui le terrain est continu : on remonte juste au-dessus du terrain.
(cas n°3) si non, il est au-desus d'un vide : on passe en mode 'saut' : saut?=vrai, avec une vitesse initiale nulle: Vy=0 et il tombera en accélérant avec la gravité.
Animation du lutin :
L'animation du lutin, se fait en changeant son costume à chaque fois qu'il se déplace.
On va ajouter une procédure "changer de costume" et l'appeler dans la procédure "Déplacer xy".
Deux séries de costumes sont fournis dans les ressources en entrée (cf. ci-dessous):
- costumes n°2 à 8 dessinés en bâtons,
- costumes n°9 à 13 qui sont des images.
- numéro costume : pour le numéro de costume affiché,
- numéro costume début : le premier dans l'animation,
- numéro costume fin : le dernier dans l'animation,
- numéro costume descente : celui affiché en tombant,
- numéro costume montée : celui affiché au début du saut.
Commencez par utiliser une série de costumes founrie dans les ressources. Vous pourrez ensuite dessiner les votres ou choisir d'autres images d'animations. Veillez à ce que les images soient de la même taille et placées eu même endroit dans la fenêtre de dessin.(exemple : centrées horizontalement juste au-dessus de la croix qui correspond au centre de l'espace de dessin).
On ajoute ensuite la procédure "Changer de costume"
- Si un saut est en cours : si (Saut?=vrai)
- Si montée cours : si(Vitesse y > 0)
      mettre numéro costume à numéro costume montée - Sinon descente : sinon
      mettre numéro costume à numéro costume descente
- Si montée cours : si(Vitesse y > 0)
- sinon :
- ajouter 1 à numéro costume
- si numéro costume >
numéro costume fin
ou si numéro costume < numéro costume début
      mettre numéro costume à numéro costume début
- basculer sur le costume numéro costume
Enfin on complète la procédure "déplacer XY"
- à la fin, en appelant"Changer de costume",
-
et au début, en basculant sur le premier costume, pour que la détection des collisions se fasse toujours avec la même image.
(noter que la procédure est exécutée sans rafraichissement d'écran, donc cette transition avec le prmeir costume ne se voit pas à l'écran qui affiche le résultat de la dernière commande).