Culture Geek

Je code, tu codes… vous codez ? #10

Je code, tu codes… vous codez ? #10

C’est qui l’boss ?

 

Bonjour à toutes et à tous, et bienvenue dans cette nouvelle série d’articles qui traitera – en long, large et autres travers – de la programmation, et puisque nous sommes sur Cleek, nous parlerons bien entendu ici de l’art geek dans toute sa splendeur : le jeu vidéo et les étapes nécessaires pour créer le vôtre de A à Z !

Non, non, ne fuyez pas tout de suite, rassurez-vous, le développement de logiciels n’est en aucun cas, contrairement à certaines idées reçues, une affaire d’intellos reclus et monomaniaques ! En effet, quelques cuillères à soupe de logique, une ou deux onces de patience ainsi que quelques grammes de curiosité sont les seuls ingrédients requis pour développer la base d’un jeu vidéo.

Cette semaine, un ajout de taille, et non des moindres : notre premier boss ! Notre objectif sera relativement simple : au bout de quelques minutes, le spawner de vaisseaux ennemis s’interrompt pour laisser place à l’apparition de notre boss, qui s’arrêtera au milieu de l’écran pour commencer à tirer ses propres projectiles. Il va sans dire que ce gros méchant sera doté d’une réserve de points de vie importante !

 

Le physics ne fait pas tout

 

Emparez-vous pour commencer de ce magnifique sprite, et ajoutez-le à votre projet dans le bon dossier.

 

Beau comme un sous neuf !

Beau comme un sous neuf !

 

Glissez ce sprite dans la Hierarchy et augmentez son échelle en X et Y à 2 pour doubler sa taille à l’écran. Appliquez une rotation de -90 sur l’axe Z pour orienter correctement notre boss.

 

cleek_image_prog10_1

 

Ensuite, ajoutez un Rigidbody dont vous décochez la gravité (« Use gravity ») et auquel vous appliquez des contraintes de rotation en X, Y et Z. Pour finir avec le sprite et sa physique, vous pouvez ajouter un box collider qui reprend l’avant du boss : le seul endroit où les tirs lui feront des dégâts. Cochez l’option « Is trigger ».

 

cleek_image_prog10_2

 

 

Un coup de mou

 

Avant de passer à la suite de notre boss, fabriquons lui un projectile digne d’être tiré par un vaisseau si majestueux. C’est décidé, notre premier boss lancera des sphères de plasma bleu-pixel… un peu comme l’image que voici :

 

bossShoot

 

Comme d’habitude, dans le dossier sprite, puis glissez le sur votre Hierarchy. Ajoutez un Rigidbody dont vous décochez la gravité, puis créer la sphère de collision via l’outil « Sphere Collider ». N’oubliez pas de cocher l’option « Is Trigger ».

Nous allons ensuite ajouter trois scripts sur notre « bossShoot » :

  • MoveShoot (speed = -3)
  • FreeObject (IsEnnemi = true)
  • GestionSante (IsEnnemi = true, AExplosion = ExplosionPrefab, Degats = 1, PointsDeVie = 2)

 

cleek_image_prog10_4

 

Une fois cela fait, renommez le GameObject créé en « BossShootPrefab » et glissez-le dans le dossier Prefab, puis supprimez-le de la Hierarchy.

 

Si peu de code

 

Créons un nouveau script que nous baptiserons « MoveBoss ».

 

cleek_image_prog10_3

 

Recopiez ce code à l’intérieur, et voyons ensemble comment il fonctionne :

  • le boss démarre à l’extrémité droite de l’écran, il va se déplacer vers la gauche jusqu’à atteindre le point « StopForward »
  • quand il atteint le point d’arrêt « StopForward », la variable « BossCanShoot » va passer à True, autorisant le boss à tirer sur notre pauvre Nyan-Cat
  • le boss se déplace de haut en bas sans s’arrêter

 

Après le déplacement, place à la violence, avec l’utilisation par notre Boss du prefab créé tout à l’heure : le « BossShootPrefab » qui sera instancié à intervalles réguliers par le script « BossFire ».

Créez ce script. Maintenant.

 

cleek_image_prog10_5

 

Rien de bien nouveau dans ce morceau de code. Notez néanmoins la ligne dans laquelle nous farfouillons dans le script BossFire pour aller récupérer la valeur de la variable « BossCanShoot ».

Retournons sur notre boss dans la Hierarchy, et ajoutons lui nos deux derniers scripts créés : MoveBoss et BossFire. La dernière chose dont nous avons besoin sera le script GestionSante, ajoutez-le en fixant 50 points de vie par exemple.

 

cleek_image_prog10_6

 

Terminons la conception de notre premier boss en le convertissant en prefab après l’avoir renommé « Boss1Prefab » (le glisser dans le dossier prefab, puis le supprimer de la Hierarchy).

 

Je spawn, tu spawns, il….

 

La dernière chose à faire est de modifier le script qui fait apparaître les ennemis. Faites confiance au script suivant, il n’est pas méchant :

 

cleek_image_prog10_7

 

Nous attendons simplement que la valeur du compteur dépasse les 3600, après quoi nous bloquons l’apparition des vaisseaux ennemis basiques au profit de l’apparition du boss. Sauvegardez le script et associez dans Unity le prefab de boss au champ correspondant du spawner comme sur l’image suivante :

 

cleek_image_prog10_8

 

Sauvegardez, testez et tentez de survivre plus de trois minutes !

 

Culture Geek
Plus Culture Geek