Scratch : jeu d'évitement à la manière de Flappy Bird

Nous allons créer un jeu d'obstacles en nous s'inspirant de Flappy Bird. Il s'agit ici d'un Perroquet qui doit éviter des rochers et d'autres oiseaux.
 
 
Pour ce projet nous allons utiliser perroquet qui vole.sb2 créé dans un précédent article.
http://ludosciences.blogspot.fr/2017/01/scratch-des-costumes-pour-voler.html#!/2017/01/scratch-des-costumes-pour-voler.html

Vous pouvez également le retrouver sur ma page Scratch : https://scratch.mit.edu/projects/139674405/

1. Les lutins

Ce projet va nécessiter l'utilisation de plusieurs lutins :


  • oiseau, nuage 1, nuage 2 , rocher 1 : ils ont été créés précédemment.
  • rochers 2 et rochers 3 : ils ont été importés depuis la bibliothèque des lutins. Leurs apparences ont été modifiées avec la palette graphique.

  • obstacle oiseau 1 et obstacle oiseau 2: il s'agit de perroquets issus de la bibliothèque modifiés avec la palette graphique de Scratch. 
 
2. Programme de l'oiseau
 
Nous allons modifier le programme de l'oiseau joué pour créer un déplacement à la manière de Flappy Bird. Dans ce jeu l'oiseau s'élève lorsque le joueur appuie sur une touche. Dés que la touche est relâchée, il redescend.
 
NB: s'agissant d'un jeu pour débutant notre oiseau, à la différence de Flappy Bird, n'a pas de limite de vol.  
 
Nous allons modifier l'ancien programme par un nouveau programme de déplacement.
  • la première pile de blocs qui sert à animer les costumes ne change pas
  • les deux piles de blocs qui servaient à faire monter et descendre l'oiseau sur la scène sont supprimées et remplacées par un programme qui permet à l'oiseau de s'élever lorsque la touche Espace est enfoncée. Il redescend dès que celle-ci n'est plus pressée.
 
 

 
 
 
3. Programme des obstacles de type oiseaux
 
Le programme qui sert à faire défiler les oiseaux est identique, dans sa construction, à celui utilisé pour les nuages, et le rocher, dans le projet oiseau qui vole.sb2.
 
Programme obstacle oiseau 1
 
Programme obstacle oiseau 2
 
 
Le programme des oiseaux est constitué de deux piles de blocs.
  • La première pile pour les faire apparaître sur la scène, les faire défiler, puis les faire disparaître.
  • La deuxième est utilisée pour animer les ailes.
 
 
Lorsqu'il est visible sur la scène l'oiseau 1 joue un son... d'oiseau, qui se nomme chee chee. Pour associer ce son à l'oiseau 1 :
  • sélectionnez l'oiseau concerné dans la Fenêtre des lutins
  • cliquez sur l'onglet Son. La Fenêtre des sons s'ouvre.
 
 
Par défaut, le son associé à ce lutin est bird. Pour importer un autre son depuis la bibliothèque des sons :
  • Nouveau son - cliquez sur l'icône  qui permet d'ouvrir la bibliothèque de sons.
  • Sélectionnez chee chee et validez en cliquant sur Ok : chee chee est maintenant associé à l'oiseau et sera proposé dans le menu déroulant du bloc utilisé pour incorporer un son dans le programme.
 
  
 
 Pour l'oiseau 2, faites la même chose mais sélectionnez le son squawk.
 
  


4. Programme des obstacles de type rochers

 
Les programmes des rochers sont construits de la même manière que ceux qui permettent de faire défiler les oiseaux sur la scène. Ici on joue sur les temps d'attente pour éviter d'afficher tous les obstacles en même temps.



Programmes rocher 2 et rocher 3
5. Une variable pour gérer des vies

Maintenant que nos obstacles sont programmés, il va falloir créer un compteur, sous la forme d'une variable, pour enlever des points, enlever des vies lorsque l'oiseau joué touche un obstacle (oiseaux ou rochers).

Nous allons créer une variable qui va servir de compteur pour comptabiliser le nombre de vies.
  • Dans l'onglet Script ouvrir la catégorie Données
  • Sélectionnez Créer une variable : une fenêtre s'ouvre
  • nommez cette variable vies et validez en sélectionnant Ok.
  • de nouveau blocs sont créés pour gérer la variable vies


 
6. Programme pour compter les vies
 
Les piles de blocs utilisées pour compter les vies viennent compléter le programme du lutin joué. Précédemment trois piles de blocs avaient été créés :
  • pour animer le lutin
  • pour le faire monter et le faire descendre
  
Au démarrage l'oiseau dispose de 10 vies.

Le programme va en continu (répéter indéfiniment) tester des conditions, à savoir Est-ce que l'oiseau touche un obstacle? Chaque condition est introduite par un Si...


Pour chaque obstacle le même programme doit être créé : si  l'oiseau touche "nom de l'obstacle" alors une vie est enlevée.
Cet ensemble de bloc doit être créé pour chaque obstacle. L'obstacle est sélectionné grâce au menu déroulant.
 
Ce bloc évite de décrémenter plus d'une vie sur un même impact entre l'oiseau et un obstacle. 
 
 






L'avant dernière condition est utilisée pour arrêter l'exécution du programme lorsque le compteur des vies est à 0. Elle s'intègre à la suite des autres conditions au sein de la boucle de répétition.


La dernière condition est utilisée pour arrêter l'exécution du programme lorsque l'oiseau s'écrase sur le sol. Le sol est déterminé par sa couleur : le vert. Cette dernière condition s'insère dans la boucle de répétition à la suite des autres.
 
Astuce pour sélectionner la couleur du sol :
  • cliquez sur zone contenant la couleur dans le bloc : la souris prend la forme d'une main
  • avec cette main allez sélectionnez la couleur du sol sur la scène en cliquant dessus.
  • la couleur sélectionnée est maintenant présente dans le bloc



 
Le jeu est maintenant terminé. Vous pouvez l'améliorer :
  • en augmentant le nombre d'obstacles
  • en faisant apparaitre les obstacles d'une manière aléatoire en utilisant le bloc
  • en augmentant la vitesse de déplacement des obstacles ou de l'oiseau.
Le désigne est également à améliorer. Pour ma part j'ai fait quelque chose de très simple car je suis une piètre dessinatrice.

Le projet est en ligne sur ma page Scratch : https://scratch.mit.edu/projects/140168923/
 
   

Commentaires

Posts les plus consultés de ce blog

Fabriquer une main articulée

Scratch - Dessiner dans un repère orthonormé

Apprendre à programmer avec Arduino - le chenillard