Watch
1
0
Fork
You've already forked motus
0
Wordle in French with configurable settings, a project for CS class.
  • GDScript 100%
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026年03月25日 19:19:23 +01:00
assets change letter highlight colors 2026年02月02日 18:57:26 +01:00
readme add readme 2026年02月02日 21:48:12 +01:00
scenes clear unnecessary unique names 2026年03月25日 19:19:23 +01:00
src add further comments 2026年03月25日 19:16:13 +01:00
.editorconfig first commit 2026年02月02日 18:48:08 +01:00
.gitattributes first commit 2026年02月02日 18:48:08 +01:00
.gitignore first commit 2026年02月02日 18:48:08 +01:00
project.godot fix: missing action 2026年02月02日 21:48:04 +01:00
README.md improve readme 2026年03月25日 19:19:02 +01:00

Motus

Comment jouer

Cette archive ne contient pas d'exécutables.

  1. Installez Godot Engine.
  2. Importez le project dans Godot.
  3. Lancez le jeu (F5).

Structure du code

GameManager est responsable de la gestion complète du jeu. Tout le jeu se déroule dans une seule scène, car il ne requiert pas de complexité additionnelle. Pour afficher les mots et leurs lettres plus facilement, GameManager instancie une scène de la classe Word, qui anime l'apparition des lettres, elles-même instanciées de la classe Letter qui gère l'affichage d'une lettre en fonction de son état (correcte, mal placée, incorrecte). Les scripts dans src/gui/ sont des utilitaires pour afficher un slider et une entrée de nombre couplées plus facilement. Ces scripts sont tirés du code de Godot Dash. Le script dans src/static/ est une dépendance pour les scripts dans gui/. Il contient une fonction qui permet de créer un objet dans l'arborescence d'une classe arbitraire et de le nommer, en une seule ligne.

Différences notables entre Python et GDScript

GDScript a une syntaxe similaire à celle de Python, mais a quelques différences avec ce dernier :

  1. Chaque fichier ("script") est une classe. Le nom de la classe est optionel et est inscrit après class_name. La classe parent est inscrite après le mot-clé extends.
  • Si le script n'a pas de nom de classe, son type est considéré comme celui de la classe parent.
  1. Le typage est dynamique, mais ajouter un type à la déclaration d'une variable rend le typage strict sur cette variable (le type ne peut plus changer).
  • On peut ajouter du typage à des variables de deux manières :
    • Explicite : var x: int = 0
    • Déduit : var x := 0, souvent utilisé lorsque l'expression d'initialisation contient le type, e.g. var file_access := FileAccess.open("/path/to/file")
  1. GDScript a plusieurs types pour représenter des listes :
  • Array, qui peut être typé (Array[float] par exemple) et qui peut représenter une collection de types quelconques.
  • Tous les types Packed*Array (e.g. PackedFloat64Array) qui sont optimisés en mémoire pour contenir un type unique.
  1. Les variables sont initialisées avec le mot-clé var.
  2. Les fonctions sont initialisées avec le mot-clé func au lieu de def, et une absence de valeur renvoyée est marquée avec -> void au lieu de -> None.
  3. GDScript a des constantes, initialisées avec const.
  4. GDScript a des énumérations, initialisées avec enum.
  5. GDScript a des variables statiques, initialisées avec static var, dont la valeur est commune à toutes les instances.
  6. GDScript a des fonctions statiques, initialisées avec static func, qui peuvent être appelées sans instance (analogue à @staticmethod en Python).
  7. GDScript a des signaux, initialisés avec signal, qui peuvent être émis (e.g. value_changed.emit(new_value)) et qui exécutent des fonctions-receveurs (e.g. _on_value_changed(new_value: float)).
  8. On peut définir des setters et getters pour les variables, qui exécutent implicitement du code lorsque la variable est modifiée ou qu'on récupère sa valeur.
  9. Il existe plusieurs annotations pour les variables. Les plus notables sont :
  • @export qui rend la variable accessible dans l'inspecteur de Godot et sauvegarde sa valeur dans la scène (fichier .tscn).
  • @onready qui initialise la variable quand une instance de la classe est ajoutée à l'arborescence de la scène et que ses nœuds enfants sont initialisés.
  1. Godot fonctionne avec des scènes en arborescence.
  • Toutes les classes qui peuvent être représentées dans l'arborescence héritent de la classe Node.
    • Pour ces classes-là, _ready s'exécute quand les nœuds enfants sont initialisés et dans l'arborescence, et _process s'exécute à chaque image affichée par le jeu.
  • On peut prendre une référence à un nœud enfant avec le shorthand $A/B/C.
  • Certains nœuds peuvent être marqués comme "à nom unique" et on peut alors obtenir une référence avec le shorthand %NomUnique depuis n'importe quel nœud parent dans l'arborescence.
  1. GDScript a plusieurs types pour les strings :
  • String, le type par défaut, délimité par "".
  • StringName, qui représente des strings uniques et immutables (e.g. des noms d'actions pour Input.is_action_pressed), délimité par &"".
  • NodePath, qui représente un chemin dans l'arborescence ou dans les membres d'une instance de classe, délimité par ^"".
  1. Par convention, les fonctions dont le nom est préfixé par un underscore sont privées, et les fonctions dont le nom commence par _on_... sont des récépteurs de signaux.
  2. GDScript a des types primitifs pour représenter certaines choses utiles dans le contexte d'un jeu vidéo (e.g. Vector2 ou Color).
  3. L'interpolation de strings peut se faire par concaténation ou avec une syntaxe similaire à C ("J'ai %s pommes" % nombre_pommes qui donne "J'ai 4 pommes").
  4. On peut attendre l'émission d'un signal avec le mot-clé await, e.g. await timer.finished.