Module lejeu.fenetre

Module gérant l’interface graphique

Ce module définie les classes utilisées pour toute l’interface graphique (menus, édition, import de fichiers, évolution des cellules). Il y a également une fonction main() qui démarre l’application.

class lejeu.fenetre.CoucheAide[source]

Bases: builtins.Layer

Couche de texte de l’aide.

CoucheAide.is_event_handler = True
CoucheAide.on_mouse_press(x, y, buttons, modifiers)[source]

Revient au menu principal si on clique.

class lejeu.fenetre.CoucheCellules(etat, cell_dim=(10.0, 10.0), theme=((255, 255, 255, 255), (0, 0, 0, 255)))[source]

Bases: builtins.Layer

Couche capable d’afficher des cellules.

Cette couche permet de se déplacer dans le monde en cliquant/glissant avec le clic droit et de zommer avec la molette.

param etat:État à utiliser pour initialiser lejeu.dieu.SuperDieu.
type etat:set
param cell_dim:Hauteur et largeur d’une cellule (en pixels).
type cell_dim:tuple
CoucheCellules.dessine_cellules(nees, mortes)[source]

Met à jour la liste de cellules à dessiner.

CoucheCellules.draw()[source]

Dessine les cellules vivantes sur la couche.

CoucheCellules.is_event_handler = True

CoucheCellules gère les évenement de la fenêtre.

CoucheCellules.on_mouse_drag(x, y, dx, dy, buttons, modifiers)[source]

Déplacer les cellules avec la souris.

Paramètres:
  • x (int) – Abscisse de la souris.
  • y (int) – Ordonnée de la souris.
  • dx (int) – Déplacement en abscisse de la souris.
  • dy (int) – Déplacement en ordonnée de la souris.
  • buttons (int) – Combinaison des codes des boutons de la souris enfoncés.
CoucheCellules.on_mouse_scroll(x, y, scroll_x, scroll_y)[source]

Zoom centré sur la souris.

Paramètres:
  • x (int) – Abscisse de la souris.
  • y (int) – Ordonnée de la souris.
  • scroll_x (int) – Scroll horizontal de la souris (rare).
  • scroll_y (int) – Scroll vertical (‘clics’ de molette).
CoucheCellules.update(dt)[source]

Met à jour la fenêtre si besoin.

Paramètres:dt (float) – Durée depuis le dernier appel (environ 1/60sec).
CoucheCellules.vertexs_cellule(c)[source]

Calcule les vertexs d’une cellule.

Paramètres:c (tuple) – Coordonnées de la cellule.
Retourne:attributs formatées des vertexes (voir vertex attributes)
Type retourné:tuple
class lejeu.fenetre.CoucheCredits[source]

Bases: builtins.Layer

Couche de texte des crédits.

CoucheCredits.is_event_handler = True
CoucheCredits.on_mouse_press(x, y, buttons, modifiers)[source]

Revient au menu principal si on clique.

class lejeu.fenetre.CoucheEdition(**kwargs)[source]

Bases: lejeu.fenetre.CoucheCellules

Couche permettant l’édition d’un état initial.

CoucheEdition.on_key_release(symbol, modifiers)[source]

Stoppe/redémarre l’évolution en appuyant sur <space>.

CoucheEdition.on_mouse_drag(x, y, dx, dy, buttons, modifiers)[source]

Dessine des cellules (efface avec <ctrl>).

Paramètres:
  • x (int) – Abscisse de la souris.
  • y (int) – Ordonnée de la souris.
  • dx (int) – Déplacement en abscisse de la souris.
  • dy (int) – Déplacement en ordonnée de la souris.
  • button (int) – Code de la touche appuyée.
  • modifiers (int) – Combinaison des codes des touches spéciales.
CoucheEdition.on_mouse_press(x, y, button, modifiers)[source]

Dessine des cellules (efface avec <ctrl>).

Paramètres:
  • x (int) – Abscisse de la souris.
  • y (int) – Ordonnée de la souris.
  • button (int) – Code de la touche appuyée.
  • modifiers (int) – Combinaison des codes des touches spéciales.
class lejeu.fenetre.CoucheEvolution(etat, vitesse_evo=0.25, **kwargs)[source]

Bases: lejeu.fenetre.CoucheCellules

Couche permettant l’évolution des cellules (scène principale).

param etat:État à utiliser pour initialiser lejeu.dieu.SuperDieu.
type etat:set de coordonnées des cellules vivantes
param cell_dim:Hauteur et largeur d’une cellule (en pixels).
type cell_dim:tuple d’entier
param vitesse_evo:
 Nombre de secondes pour qu’une nouvelle génération apparaisse.
type vitesse_evo:
 int ou float
CoucheEvolution.on_key_press(symbol, modifiers)[source]

Stoppe l’évolution avec la touche espace.

CoucheEvolution.update(dt)[source]

Met à jour une nouvelle génération s’il le faut.

Paramètres:dt (float) – Durée en seconde depuis le dernier appel.
class lejeu.fenetre.MenuImport[source]

Bases: builtins.Menu

Menu d’import de fichier.

MenuImport.on_import()[source]

Essaye d’importer le fichier demandé.

MenuImport.on_retour()[source]

Revient au menu principal.

MenuImport.on_value(value)[source]

Met a jour la valeur entrée.

class lejeu.fenetre.MenuPrincipal[source]

Bases: builtins.Menu

Couche du menu principal.

MenuPrincipal.on_aide()[source]

Lance la couche CoucheAide.

MenuPrincipal.on_create()[source]

Lance la couche CoucheEdition.

MenuPrincipal.on_credits()[source]

Lance la couche CoucheCredits.

MenuPrincipal.on_import()[source]

Lance le menu MenuImport.

MenuPrincipal.on_quit()[source]
lejeu.fenetre.main(etat)[source]

Démarre l’interface graphique