Sites


Blender pour le jeu video

Quitter le jeu

Une fois notre objectif atteint (ou l'envie de faire une pause) nous voulons pouvoir quitter le jeu.

Représentation de Quiiter le jeu avec le Blender Game Engine

Dans le cadre de notre mini-jeu, nous voulons que notre personnage quitte le jeu après avoir atteint la porte. L'objet porte est pour l'instant un simple cube rouge. Pour procéder au paramétrage de cette porte, nous allons, comme vu dans le chapitre précédent, le gérer par une simple collision. Seul l’événement de fin changera pour terminer la partie.

Sélectionnons notre cube rouge renommé "Porte" et ajoutons lui les Logic Brick suivantes :

  • le Sensor de type Collision ;
  • le Controller de type And ;
  • l' Actuator de type Game, paramétré pour exécuter un Quit Game.

Il ne faudra pas oublier de changer le Physics Type de l'objet pour Sensor.

quitter le jeu par la porte de fin, expliqué et annoté

Voila, nous avons notre fin du jeu ! Le procédé est similaire pour le cas où la fin du jeu serait déclenchée par une collision avec un ennemi. On peut également proposer de relancer le jeu en changeant l'actuator Game en lui mettant l'option Restart Game.

Quitter à l'aide d'une touche de clavier

Par défaut, la touche permettant de quitter est Échap. Mais si  par exemple, nous préférons afficher un menu de pause plutôt que de quitter le jeu abruptement avec cette touche, pour sortir du jeu à tout moment, nous pouvons redéfinir une autre touche (comme F12) en changeant la valeur Exit Key dans Properties > Render > System.

Maintenant que nous avons redéfini la touche par défaut, nous allons assigner une nouvelle touche via les Logic Brick.

1. Nous allons donc commencer par ajouter une brique Sensor de type Keyboard qui sera la touche à actionner pour quitter le jeu.

2. Relions cette brique à une brique Controller de type And qui sera elle même branchée sur une brique Actuator de type Game.

3. Ensuite, il nous reste juste à changer l'action à effectuer dans la brique Game pour mettre Quit Game.

Cet actuator pourrait également lancer une scène plutôt que de quitter, par exemple pour afficher un menu de pause. Ceci sera discuté dans le chapitre Créer un Menu dans la section Développer l'ergonomie.

Scrypthon!

Il nous suffit juste de faire appel au code suivant avec une brique Controller de type Python :

from bge import logic

logic.endGame()

Nous avons juste un petit morceau de code, mais nous pouvons aller bien plus loin en gérant avec Python l'événement qui fera quitter le jeu.

from bge import logic, events 
# On recupere l'objet qui lance le script
cont = logic.getCurrentController() own = cont.owner

# On assigne les evenements du clavier à une variable kboard = logic.keyboard.events 
# Si la touche echap est appuyee if kboard[events.ESCKEY] == logic.KX_INPUT_JUST_ACTIVATED :
 # Quitter le jeu logic.endGame()
 # Si le score est de minimum 5 if own['score'] >= 5 :
 # Quitter le jeu logic.endGame()

Il ne nous reste plus qu'à remplacer la brique sensor qui lançait le script par une brique sensor Always pour laquelle on enclenche le Pulse mode (bouton "..." de gauche) afin que le script soit exécuté en permanence.

Le Pulse mode sert à envoyer un signal à chaque image (frame) pour que le script soit toujours exécuté.

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.