CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : [PYGAME] Menu d'un jeu

DébutPage précedente
1
Page suivantePage suivante
Laskarpro Laskarpro
MP
Niveau 10
22 avril 2015 à 20:26:52

Bonsoir,

Faisant spécialité ISN en Term nous avons eu comme projet de faire 1 jeux. Et moi je dois m'occuper du décors du jeux ainsi que de son menu avec 1 bouton "Jouer" et 1 bouton "Quitter", j'avais demandé de l'aide pour qu'on me fasse mon menu mais le programme ne fonctionne pas, voila ce qu'on m'as donné:

from sys import exit
from dico import *
import pygame
from pygame.locals import *
TAILLE_BLOC = 20
NB_BLOC_MAX = 30
DIMENSION_ECRAN = TAILLE_BLOC * NB_BLOC_MAX
def dire_bonjour():
print("\n\nJe suis la fonction dire bonjour, donc bonjour")

  1. -------------------------------------------------------------------------------
  2. Initialisation de pygame
  3. -------------------------------------------------------------------------------

pygame.init()
pygame.font.init()
ecran = pygame.display.set_mode((DIMENSION_ECRAN, DIMENSION_ECRAN))
pygame.display.set_caption("Un petit menu avec Pygame !")

  1. -------------------------------------------------------------------------------
  2. Variables
  3. -------------------------------------------------------------------------------

var_1, var_2, var_3, var_4 = "Menu", "Pause", "Quitter", "Autre"

  1. -------------------------------------------------------------------------------
  2. Importation et gestion des classes <Conteneur> <Contenu>
  3. -------------------------------------------------------------------------------

conteneur_1 = Conteneur(5) #On créer un menu avec 5 cellules au maximum
conteneur_1.ajouter_contenu(var_1)
conteneur_1.ajouter_contenu(var_2)
conteneur_1.ajouter_contenu(var_3)
conteneur_1.ajouter_contenu(var_4)
conteneur_1.supprimer_contenu(var_4)

#

conteneur_1[var_1].set_nom_methode_a_executer(dire_bonjour)
conteneur_1[var_1].set_couleur((0,0,255))

  1. On boucle chaque contenu pour draw le rect respectif en couleur + contour

conteneur_1.dessiner(ecran, DIMENSION_ECRAN//2, DIMENSION_ECRAN//2)
pygame.display.flip()

  1. -------------------------------------------------------------------------------
  2. Boucle principale
  3. -------------------------------------------------------------------------------

continuer = True
while continuer:
event = pygame.event.wait()
mouse_x, mouse_y = pygame.mouse.get_pos()
if event.type == pygame.QUIT:
continuer = False
break

  1. -------------------------------------------------------------------------------
  2. Suite de la boucle
  3. -------------------------------------------------------------------------------

#La méthode evenement_souris(mouse_x, mouse_y, event) permet de savoir
#si chaque le pointeur de notre souris est ou clique sur une cellule.
for i in conteneur_1.values(): #On donne l'évènement à nos contenus
i.evenement_souris(mouse_x, mouse_y, event)

  1. -------------------------------------------------------------------------------
  2. On redessine l'ecran
  3. -------------------------------------------------------------------------------

ecran.fill(0)
conteneur_1.dessiner(ecran, DIMENSION_ECRAN//2, DIMENSION_ECRAN//2)
pygame.display.flip()

  1. -------------------------------------------------------------------------------
  2. Que faire si l'on sort de la boucle
  3. -------------------------------------------------------------------------------

print("\nAu revoir, vous quittez le programme...")
pygame.quit()
exit(0)

:d) Le problème c'est que j'ai n'ai pas le module dico, mais je crois qu'en fait fallait mettre le module builtin je suis pas sur et aussi Conteneur n'est pas défini et je m'y connais vraiment pas grand chose en Menu, 2h par semaine dans l'année on connait quelques notions mais rien de bien appronfondis besoin d'aide svp

Message édité le 22 avril 2015 à 20:27:53 par Laskarpro
Biolixe Biolixe
MP
Niveau 6
24 avril 2015 à 20:24:10

J'avais programmé un système de menu ultra basique pour un jeu fait en Python il y a quelques années, je te le passe en espérant qu'il puisse te servir :P
http://pastie.org/10112092 : Télécharge ce fichier .py et nomme le en SimpleMenu.py
http://pastie.org/10112093 : Ça c'est le code minimal pour faire fonctionner le menu, appelle le comme tu veux en .py et met le dans le même fichier que SimpleMenu.py

Maintenant pour les explications du code :
Premièrement dans le code minimal on doit importer SimpleMenu et pygame
Ensuite on initialise pygame avec pygame.init()
Ensuite on crée une fenêtre en plein écran (tu n'es pas obligé de créer une fenêtre en plein écran)

Pour créer un menu c'est simple, tu fais juste :
maVariableMenu = SimpleMenu.SimpleMenu((positionX,positionY))
positionX et positionY seront la position du menu

Ensuite il faut passer en paramètre au menu la variable de la fenêtre :
maVariableMenu.setScreen(screen)

Pour ajouter un titre au menu :
maVariableMenu.addTitle("Nom du titre",tailledutitre,(r,g,b))
"Nom du titre" est ce qui sera affiché pour le titre, tailledutitre doit être un chiffre > 12 qui sera la taille du texte et r,g,b sont les composantes de la couleur du titre, 255,0,0 donnera du rouge par exemple.

Pour ajouter un élément au menu :
maVariableMenu.addElement("a","Element 1",1, 32, (r,g,b),(hr,hg,hb))
"a" est l'identifiant uniquement de l'élément, "Element 1" est le texte affiché, 1 est la valeur retournée par getValue(), (r,g,b) est la couleur de l'élément et (hr,hg,hb) est la couleur quand selectionnné :)

Le code d'exemple devrait t'aider à comprendre bonne chance :)

Pseudo supprimé
Niveau 8
24 avril 2015 à 22:30:06

Bien mon code :hap:

Message édité le 24 avril 2015 à 22:30:25 par
Biolixe Biolixe
MP
Niveau 6
24 avril 2015 à 23:02:15

Wut c: ?

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment