Tutoriel : Créer un jeu de tir avec Scratch

Les jeux de tir sont un genre de jeu vidéo populaire qui met l'accent sur les combats à distance à l'aide d'armes. Ces jeux exigent souvent des réflexes rapides, une pensée stratégique et une excellente coordination œil-main. Dans ce tutoriel, nous allons explorer comment créer un jeu de tir simple en utilisant Scratch, un environnement de programmation visuel conçu pour les débutants.

Introduction à Scratch

Scratch est un langage de programmation visuel développé par le MIT Media Lab. Il permet aux utilisateurs de créer des histoires interactives, des jeux et des animations en utilisant une interface de type "glisser-déposer". Scratch est un excellent outil pour apprendre les bases de la programmation, car il élimine la complexité de la syntaxe et permet aux utilisateurs de se concentrer sur la logique et la conception du jeu.

Préparation de l'environnement de développement Scratch

Avant de commencer à créer notre jeu de tir, nous devons configurer l'environnement de développement Scratch. Voici les étapes à suivre :

  1. Accéder à Scratch : Depuis la page principale de Scratch, cliquer sur "créer".
  2. Choisir un arrière-plan : Sélectionner les arrières-plan "stars" et "Space". Il apparait alors à l'écran si ce n'étais pas déjà fait.
  3. Ajouter des sprites : Un menu déroulant apparaît avec les mêmes options que pour les décors, permettant de choisir un sprite dans la base de données ou d'en importer un et de le modifier. Les Sprites apparaissent alors à l'écran du dessus.
  4. Sélectionner le sprite du vaisseau spatial : Chercher dans la banque de données le Sprite appelé "Rocketship " en forme de vaisseau spatial en supprimant celui du chat.
  5. Modifier les costumes du sprite : Sur la page de création de Scratch, appuyer sur "costumes". Nous allons ici ajouter un élément depuis la base de données de Scratch (4). Choisir un Sprite "Donut", il apparaît en tant que nouveau costume. Avec l'outil de sélection en forme de pointeur de souris, entourer le Donut, et appuyer sur "grouper " pour fusionner tous les éléments le composant.
  6. Ajouter un personnage : Sélectionnez ensuite un Sprite astronaute appelé "Ripley" dans la base de données de Scratch, dont nous allons nous servir en tant que personnage pour incarner Captain Donut.

Conception du jeu

Notre jeu de tir Scratch consistera en un vaisseau spatial qui doit détruire des météorites tout en évitant de se faire toucher. Le jeu comprendra les éléments suivants :

  • Vaisseau spatial : Le joueur contrôle un vaisseau spatial qui peut se déplacer de gauche à droite.
  • Météorites : Des météorites tombent du haut de l'écran et le joueur doit les détruire avant qu'elles n'atteignent le vaisseau spatial.
  • Missiles : Le joueur peut tirer des missiles pour détruire les météorites.
  • Score : Le joueur gagne des points pour chaque météorite détruite.
  • Barre de vie : Nous allons commencer par ajouter une barre de vie. Nous allons ajouter une seconde barre avec le Sprites "Donut" qui représentera le nombre de Donuts accumulés dans le niveau. Le placer juste en dessous du cœur(4) après avoir réduit sa taille à 20. Réduire la taille de tous les ingrédients à 50. Nous allons maintenant ajouter des ennemis que l'on va croiser dans le niveau. Réduire leurs tailles à 70.

Création des éléments du jeu

Commençons par créer les éléments de base de notre jeu.

Lire aussi: Jeu de tir Scratch : Guide pas à pas

Vaisseau spatial

  1. Ajouter le sprite du vaisseau spatial : Si vous ne l'avez pas déjà fait, cherchez dans la banque de données le Sprite appelé "Rocketship " en forme de vaisseau spatial en supprimant celui du chat.
  2. Redimensionner le vaisseau spatial : Cliquer sur « Nouveau lutin » pour ajouter un lutin et choisir la fusée « Spaceship ». Cliquer sur l’onglet « Costumes » en haut pour pouvoir modifier la fusée. En cliquant sur la fusée, des poignées apparaissent autour pour permettre de modifier la taille. Réduire la fusée à un cinquième de sa taille actuelle à peu près, en déplaçant une des poignées carrées.
  3. Programmer le mouvement du vaisseau spatial : Le vaisseau doit pouvoir se déplacer de gauche à droite uniquement, à l’aide des flèches du clavier. Explication du code : quand le jeu commence (le drapeau vert est cliqué), le vaisseau apparaît (« montrer ») et prend sa position de départ. Quand la flèche droite est appuyée, le vaisseau va s’orienter à droite (90°) et avancer (10 pas).

Météorites

  1. Créer un nouveau sprite pour les météorites : Vous pouvez dessiner votre propre météorite à l'aide de l'outil de dessin de Scratch, ou choisir un sprite existant dans la bibliothèque.
  2. Programmer le mouvement des météorites : Il faut que la météorite se déplace en ligne droite et qu’elle rebondisse sur les bords. Explication du code : au départ du jeu, la météorite est placée et s’oriente de façon aléatoire. Dans la boucle (répéter indéfiniment), elle avance indéfiniment (de 3). Si la météorite touche le vaisseau, le jeu doit s’arrêter sur une défaite. Explication du code : si le vaisseau est touché, la météorite dit « Game Over !
  3. Ajouter des météorites supplémentaires : Une seule météorite, ce n’est pas assez pour rendre le jeu intéressant. A chaque fois que la météorite touche le bord, il faut qu’elle se duplique, rendant le jeu petit à petit plus difficile.

Missiles

  1. Créer un nouveau sprite pour les missiles : Vous pouvez dessiner votre propre missile à l'aide de l'outil de dessin de Scratch, ou choisir un sprite existant dans la bibliothèque. Il faut maintenant que le vaisseau puisse se défendre. Créer un nouveau lutin avec l’icône « Dessiner un lutin », prendre l’outil cercle, et tracer un rond rouge. Bien centrer le lutin. Cliquer sur l’onglet « Scripts », pour coder le Boulet. Le joueur devra appuyer sur la barre d’espace pour tirer un boulet avec le vaisseau.
  2. Programmer le mouvement des missiles : Explication du code : quand la touche « Espace » est pressée, l’ordinateur place le boulet au milieu de la scène, sous le vaisseau (x=0, y=0) et le fait apparaître (« montrer »). Le boulet est orienté dans la même direction que le pointeur de la souris. Le boulet avance tant qu’il ne touche pas un bord ou une météorite.
  3. Programmer la destruction des météorites : Cliquer sur le drapeau vert et tester le résultat. Ajouter cela dans la boucle . Explication du code : si la météorite est touchée par le boulet, elle disparait. Ajouter aussi le code pour les clones pour que ceux-ci disparaissent au contact du boulet, à l’aide de « supprimer ce clone » (pour ne pas supprimer la « vraie » météorite). Cliquer sur le drapeau vert et tester le résultat.
  4. Cloner les boulets : Tout fonctionne, mais on ne peut tirer qu’un boulet à la fois. C’est un peu limité. Pour résoudre cela, il est possible de cloner aussi les boulets. Explication du code : le « vrai » boulet va rester caché sous le vaisseau et ne va jamais partir. Mais chaque fois que le joueur va tirer, un clone va être créé et c’est ce clone qui va partir dans l’espace. On peut créer autant de clones que l’on veut, et donc tirer autant de boulets que l’on veut.

Score

  1. Créer une variable pour le score : Dans Scratch, vous pouvez créer des variables pour stocker des valeurs telles que le score du joueur.
  2. Programmer l'incrémentation du score : Il ne reste plus qu’à compter les points. Il suffit d’ajouter un bloc « ajouter à score 1 », mais attention à le placer au bon endroit.

Programmation du jeu

Maintenant que nous avons créé les éléments de base de notre jeu, nous pouvons commencer à programmer la logique du jeu.

Mouvement du vaisseau spatial

Le vaisseau spatial doit pouvoir se déplacer de gauche à droite en réponse aux entrées du joueur. Nous pouvons utiliser les blocs "quand la touche [flèche droite] est pressée" et "quand la touche [flèche gauche] est pressée" pour détecter les entrées du joueur et modifier la position du vaisseau spatial en conséquence.

Mouvement des météorites

Les météorites doivent tomber du haut de l'écran et se déplacer vers le bas. Nous pouvons utiliser une boucle "répéter indéfiniment" pour déplacer les météorites vers le bas et les faire réapparaître en haut de l'écran lorsqu'elles atteignent le bas.

Tirs de missiles

Le joueur doit pouvoir tirer des missiles en appuyant sur une touche spécifique, telle que la barre d'espace. Nous pouvons utiliser le bloc "quand la touche [espace] est pressée" pour créer un nouveau sprite de missile et le faire avancer vers le haut de l'écran.

Détection des collisions

Nous devons détecter les collisions entre les missiles et les météorites, ainsi qu'entre les météorites et le vaisseau spatial. Lorsque un missile touche une météorite, les deux sprites doivent être détruits et le score du joueur doit être augmenté. Lorsque une météorite touche le vaisseau spatial, le jeu doit se terminer.

Difficulté progressive

Pour rendre le jeu plus intéressant, nous pouvons augmenter progressivement la difficulté en augmentant la vitesse des météorites, en augmentant le nombre de météorites ou en ajoutant de nouveaux types d'ennemis.

Correction du bug de départ

Problème : avec le code actuel, la météorite, au départ, pourrait apparaître sur le vaisseau. Le jeu serait alors immédiatement terminé ; il faut donc empêcher que cela arrive. Cliquer sur le drapeau vert et tester le résultat.

Correction du code des clones

C’est parce que chaque clone créé possède le même code que la météorite d’origine. Ce code dit bien que le clone doit bouger quand on clique le drapeau vert, mais comme le clone est créé après que le drapeau vert soit cliqué, ce code n’est jamais déclenché. Il faut donc changer le code des clones, pour qu’ils utilisent « quand je commence comme un clone » à la place de « quand le drapeau vert est cliqué ». Comment faire ? En ajoutant du code à la météorite d’origine, puisque c’est ce code-là qui sera possédé par les clones. Faire un clic droit sur le code principal de la météorite et cliquer « dupliquer », puis changer le premier bloc pour utiliser « quand je commence comme un clone ».

Comportement de l'alien

Pour le moment, l’alien ne bouge pas; on ne sait donc pas perdre (il n’arrivera jamais en bas) et est très facile à vaincre. Explication du code : quand le jeu commence (quand le drapeau vert est cliqué), l’alien vérifie en permanence (« répéter indéfiniment ») s’il touche du rouge. Si oui, alors le jeu s’arrête (« stop tout »). Il ne reste plus qu’à faire que l’alien disparaisse lorsqu’il est touché par une munition. Explication du code : outre ce qui a déjà été expliqué, l’alien va aussi vérifier en permanence s’il a touché une munition.

Duplication de l'alien

Avec un seul alien, le jeu est trop facile. La plus simple est de dupliquer le lutin alien. Chaque clone ainsi créé possède le même code que l’alien d’origine. Mais comme ils sont créés après que le drapeau vert soit cliqué, leur code n’est jamais déclenché, et ils ne bougent pas. Il faut donc changer le code des clones, pour qu’ils utilisent « quand je commence comme un clone » à la place de « quand le drapeau vert est cliqué ». Comment faire ? En ajoutant du code à l’alien ! Puisque c’est ce code-là qui sera possédé par les clones. Faire un clic droit sur le code principal de l’alien et cliquer « dupliquer », puis changer le premier bloc pour utiliser « quand je commence comme un clone ». Comme le code sera identique pour l’alien et pour ses clones, ils bougeront tous en même temps, en étant superposés. Il faut donc que le code utilisé par les clones soit différent. Les blocs « si couleur bleue touchée, alors ajouter -80 à x » permet de séparer les clones entre eux.

Correction des bugs des clones

En testant, on voit que les clones sont invincibles. C’est parce que la partie du code qui les fait disparaître, comme celle qui les fait bouger, utilise encore le drapeau vert.

Améliorations possibles

Une fois que vous avez créé un jeu de tir de base, vous pouvez l'améliorer en ajoutant de nouvelles fonctionnalités, telles que :

  • Différents types d'ennemis : Ajouter différents types d'ennemis avec des comportements différents.
  • Bonus : Ajouter des bonus que le joueur peut collecter pour obtenir des avantages temporaires, tels qu'une augmentation de la vitesse de tir ou une invincibilité temporaire.
  • Niveaux : Diviser le jeu en niveaux avec une difficulté croissante.
  • Sons et musique : Ajouter des effets sonores et de la musique pour rendre le jeu plus immersif.
  • Graphismes améliorés : Améliorer les graphismes du jeu en utilisant des sprites plus détaillés et des arrière-plans plus élaborés.

tags: #jeu #de #tir #scratch #tutoriel

Articles populaires: