MyGame.blend: Menu Jeu

par Jean-Baptiste PERIN




Cette page présente la réalisation d'une scène de menu pour le jeu MyGame.blend.

menu


Un menu sert à proposer un certain nombre d'alternatives au joueur .. nous proposerons les options suivantes:
Lejoueur déplace un curseur avec les flèches du clavier pour sélectionner le choix et valide son choix en pressant Entrée.

Si NewGame est choisi, le programme s'initialise avec des informations par défaut.
Si ExitGame est choisi, le programme s'arrête est la main est rendu au contexte appelant.
Si LoadGame est choisi, le programme réinitialise le jeu avec les  informations de sauvegarde lues dans un fichier  mysave.txt.
Si SaveGame est choisi, le programme enregistre dans le fichier mysave.txt les informations utiles à la reproduction du contexte actuel de la partie.

Réalisation de la scène:

Lorsque le cuseur est en position basse (sur Exit Game) et que le joueur appuie sur Flèche Bas, le curseur se place en position haute (sur le choix NewGame).
De la même façon, lorsque le curseur est en position haute et que le joueur appuie sur la touche Flèche Haut, le cursuer se place en position basse. L'objet curseur reçoit les appuies flèche

Quatre parrallèlogrammes servent de support aux textes des différentes options possibles.
Un cinquième parrallèlogramme sert de curseur .. il est animé lorsque l'utilisateur appuie sur une touche fléché. C'est la position du curseur au moment où le joueur appuie sur la touche Entrée qui détermine l'option qu'il choisit.

Quelquesoit l'option choisie la scène du menu disparaît après l'appuie.

Cette scène doit pouvoir se superposer à une scène de jeu.  nous n'y faisons donc pas de fond.

Mesh, textures et animation


face de type texte Créer une caméra
Créer un plan et activer sa propriété Text dansl'onglet texture face et dupliquer le quatre fois
Uv-texturer un texte d'option du menu sur chacun des plans.
font uv map
Créer une forme de pointe pour le curseur.
Enregistrer une ipo de 4 frames pour l'obet curseur (une par option du menu)l'ipo su curseur

La logique


logic_menu



Les scripts


menu_scroll.py

# Ce script deplace le curseur lorsque le joueur 
# appuie sur la flèche haut ou bas du clavier 
# L'objet doit avoir : 
# - une propriété 'choice' 
# - deux sensors keyboard nommé 'Up' et 'Down' 
# - un actuator de type ipo nommé 'play choice' 
 cont = GameLogic.getCurrentController() 
own = cont.getOwner()
if
cont.getSensor('Up').isPositive():
 if own.choice - 1 == 0:
  own.choice = 4
else:
  own.choice = own.choice - 1
elif cont.getSensor('Down').isPositive():
 if own.choice + 1 == 5:
 own.choice = 1
 else:
 own.choice = own.choice +1

GameLogic.addActiveActuator(cont.getActuator('play choice'), True)
own.frame=own.frame+1

menu_valid.py


# Ce script configure le jeu en fonction du choix du joueur
# L'objet doit avoir : # - une propriété 'choice' # - un sensor nomme 'Enter' # - un actuator de type scene nomme 'removeMenuJeu' cont = GameLogic.getCurrentController()
own = cont.getOwner()

if cont.getSensor('Enter').isPositive():
if own.choice == 1:
  print "New Game"
elif own.choice == 2:
  print "Load Game"
elif own.choice == 3:
  print "Save Game"
elif own.choice == 4:
  print "Exit Game"

GameLogic.addActiveActuator(cont.getActuator('removeMenuJeu'), True)





(C) 2005 Jean-Baptiste PERIN - released under Blender Artistic License - www.blender.org