Blender permet de travailler sur plusieurs scènes qui peuvent se succéder ou se superposer. Dans le cadre d'un jeu, cette méthode est idéale pour séparer plusieurs niveaux ou chapitres d'une histoire, ou créer des menus et informations à l'écran. Créer, supprimer ou sélectionner des scènes se fait dans la fenêtre Info, par défaut tout en haut de l'écran.
La scène qui est active dans Blender sera également la première scène du jeu. Pour gérer d'autres scènes durant le jeu, il faut passer par l'Actuator Scene. Il possède différents modes que nous allons expliquer.
Pour changer de niveau durant le jeu, l'actuator doit être en mode Set Scene. L'option Scenedétermine vers quelle scène basculer (ou plutôt, quelle sera la nouvelle scène active). Il est nécessaire de placer une caméra dans la scène cible pour obtenir une vue de la scène une fois le changement effectué. La scène qui a provoqué le changement est détruite ainsi que tous les objets qu'elle contient. Ce mode est idéal pour charger un niveau donné avec tous les objets dans leur état initial.
Il est parfois nécessaire d'avoir plusieurs scènes fonctionnant simultanément : par exemple, afin d'afficher une interface graphique par dessus l'écran (cette technique sera décrite en détail au chapitre suivant). Les modes Add Overlay Scene et Add Background Scene permettent respectivement d'ajouter une scène à l'avant ou à l'arrière de la scène active. Comme une scène en Backgroundest affichée avant la scène active, elle détermine le fond de l'écran par ses objets et par ses paramètres de l'ongletWorld. Une scènes en Overlay est affichée après la scène active et ses objets sont visibles par dessus tous les objets de la scène. Seul le fond de la scène en Overlay sera transparent et laissera apparaître les éléments de la scène active.
Le mode Overlay est utile pour afficher des éléments en surimpression de la scène principale, comme un menu (voir chapitre suivant), des informations comme les points de vie ou le score (voir le chapitre Point de vue du joueur de cette même section).
Le mode Suspend Scene sert à mettre en pause la scène visée. Attention, une scène en pause ne peut se sortir elle-même de pause car sa logique interne est à l'arrêt ! La mise en pause et la sortie de pause d'une scène doivent provenir de commandes présentes dans une autre scène, par exemple, le bouton pause d'un menu présent sur une scène en Overlay.
Le mode Remove Scene permet de supprimer une scène et tout ce qu'elle contient. On utilise habituellement cette commande pour enlever les scènes placées en Overlay ou en Background d'une scène active. Si la scène active se retire elle-même, cela provoque la fin du jeu.
Le mode Restart redémarre la scène courante comme si le jeu venait de démarrer : elle retrouve tous ses paramètres initiaux.
Pour ajouter une scène nous utiliserons la fonction addSc
ene()
de bge.logic
. Cette fonction prend deux arguments, le premier obligatoire est le nom de la scène que l'on veut ajouter, le deuxième indique si la scène doit être ajoutée en mode Overlay (argument à 1) ou en Background (argument à 0).
Récupérons la scène courante et remplaçons-la par une autre :
from bge import logic
# Recupere un objet
KX_Scene scene = logic.getCurrentScene()
scene.replace("Nom de la nouvelle scene")
Récupérons une autre scène et et mettons-la en pause :
from bge import logic
# Liste les scènes uniquement en cours d'execution
scene_list = logic.getSceneList()# Parcours de la liste
for scene in scene_list:
if scene.name == "Game":
scene.suspend()
Réactiver une scène en pause :
if scene.suspended:
scene.resume()
Fermer une scène :
scene.end()
Voir : http://www.blender.org/documentation/blender_python_api_2_71_release/bge.types.KX_Scene.html#bge.types.KX_Scene
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.