frameCraft – Extension pédagogique pour pygame
Extension pédagogique pour pygame
frameCraft fait entrer la programmation visuelle en classe
Le développement de jeux, les simulations et la programmation visuelle sont particulièrement motivants pour les élèves. Pourtant, commencer directement avec des frameworks classiques introduit souvent une complexité technique inutile en classe.
frameCraft ajoute une couche pédagogique simplifiée au-dessus de pygame : les élèves peuvent construire plus rapidement des projets interactifs et se concentrer sur la logique, les algorithmes, les états et la modélisation plutôt que sur les détails internes du moteur.

Moins de barrières à l’entrée, des résultats visibles et des structures de jeu claires : frameCraft rend pygame plus accessible au quotidien en classe.
Pourquoi frameCraft ?
Moins de détails du moteur, plus d’informatique
frameCraft n’est pas une extension classique de moteur de jeu, mais un outil pédagogique pour l’enseignement moderne de l’informatique. La bibliothèque réduit les obstacles techniques sans masquer les concepts fondamentaux.
Démarrage rapide
Les composants habituels de pygame, comme la boucle de jeu, la gestion des événements et le rendu, sont regroupés dans une API adaptée à l’apprentissage. Les élèves peuvent ainsi créer plus rapidement leurs premiers programmes fonctionnels.
Structure claire
Les scènes, les règles, les objets, les collisions et les états sont clairement séparés. Cela facilite une organisation du code et une modélisation compréhensibles.
Apprentissage par projet
Jeux, simulations et modèles visuels évoluent étape par étape : du premier objet jusqu’au HUD, à la logique de niveau et aux finitions.

Valeur pédagogique
Des projets visibles créent des situations d’apprentissage concrètes
Les premières réussites sont particulièrement importantes en classe. Lorsqu’un personnage se déplace, que des objets entrent en collision ou qu’un état de jeu change visiblement, les élèves expérimentent directement des concepts abstraits d’informatique.
Il devient ainsi possible d’aborder de manière pratique des notions fondamentales comme la modularisation, l’abstraction, la pensée algorithmique, les structures de données et la modélisation orientée objet.
Ouvert et portable
Commencer dans CodeRoom – continuer avec Python et pygame
frameCraft est disponible comme projet open source sur GitHub et comme package Python sur PyPI. Les projets créés dans CodeRoom peuvent ainsi être poursuivis en dehors de la plateforme avec CPython et pygame standard.
Open source sur GitHub
Le code source de frameCraft est accessible publiquement. Les versions, les exemples et l’évolution de la bibliothèque peuvent être suivis directement sur GitHub.
Installation depuis PyPI
Pour travailler localement avec Python et pygame standard, frameCraft peut être installé directement avec pip.
pip install pygame-framecraftCollection de cours
Quatre projets de jeu montrent différentes façons d’utiliser frameCraft
Frogger propose une introduction particulièrement accessible au déplacement, aux voies de circulation, à la structure des niveaux et aux collisions. Les autres projets élargissent l’éventail des concepts : Breakout met l’accent sur les rebonds et les grilles de blocs, Space Invaders introduit les groupes d’objets et les pools, et Flappy Colors Flight combine les entrées, la gravité et une difficulté croissante.

Projet Frogger complet
Le cours progresse de la première scène jusqu’aux déplacements, aux boutons tactiles, aux voitures définies par des données, aux vies, aux conditions de victoire, au HUD, à la logique de redémarrage et aux finitions graphiques.
Voir le cours
Créer Breakout
Breakout concentre le développement du jeu sur la raquette, la balle, la grille de blocs, les rebonds, le score, les vies, la zone de perte et la logique de redémarrage.
Voir le cours
Flappy Colors Flight
Le projet combine un personnage visible, une commande de battement, la gravité, des paires de tuyaux, un pool d’entités, le score et une difficulté croissante.
Voir le cours
Space Invaders
Le prototype arcade montre comment les projectiles, les groupes d’ennemis, les boucles imbriquées, les collisions, le score, les états et les effets interagissent.
Voir le coursChoisir un projet
Chaque projet met l’accent sur des concepts informatiques différents
Les cours ne sont pas de simples variantes d’une même idée de jeu. Ils permettent de travailler des objectifs d’apprentissage différents et peuvent être choisis selon le groupe, le temps disponible et le thème visé.
Frogger : les états sur le plateau de jeu
Bien adapté pour étudier les voies de circulation, les déplacements dans des directions discrètes, les limites de niveau, les vies et les conditions de victoire.
Breakout : les collisions comme règle centrale
Adapté aux séquences sur les rebonds, la détection des impacts, les grilles de blocs, les compteurs, les zones de perte et les mécanismes clairs de fin de partie.
Flappy : mouvement et difficulté
Un exemple clair pour travailler la vitesse, la gravité, les mises à jour temporelles, le recyclage des obstacles, le comptage unique des points et l’équilibrage du jeu.
Space Invaders : organiser des groupes d’objets
Utile pour les boucles, les boucles imbriquées, les entités numérotées, les pools de projectiles, les groupes d’ennemis, la gestion des collisions et les pools d’effets.
Un code lisible
Les règles du jeu passent au premier plan
Avec frameCraft, les élèves n’ont pas besoin de commencer par les détails internes du moteur. Les idées essentielles apparaissent directement dans le code : les objets utilisent des tags, les états du jeu sont stockés dans la scène et les règles ainsi que les collisions font évoluer le jeu.
- Les tags relient logiquement les objets associés.
- ctx.vars stocke les états du jeu, comme les vies, le score ou la fin de partie.
- Les gestionnaires de collision rendent la logique événementielle explicite et lisible.
import frameCraft as fc
GRENOUILLE_DEPART_X = 160
GRENOUILLE_DEPART_Y = 180
LARGEUR_VOITURE = 46
HAUTEUR_VOITURE = 20
JEU(
"Frogger - Collisions",
fenetre=(320, 200),
fps=30,
arriere_plan=(30, 120, 40)
)
SCENE("principale", vies=5, mort=False)
@CONSTRUIRE_SCENE("principale")
def construire(ctx):
OBJET("grenouille", pos=(GRENOUILLE_DEPART_X, GRENOUILLE_DEPART_Y), tag="grenouille")
RECTANGLE("grenouille", 24, 24, declencheur=True)
OBJET("voiture_0", pos=(40, 100), tag="voiture")
RECTANGLE("voiture_0", LARGEUR_VOITURE, HAUTEUR_VOITURE, declencheur=True)
VITESSE("voiture_0", 90, 0)
def collision_voiture(ctx, grenouille_e, voiture_e):
if ctx.vars.get("mort"):
return
ctx.vars["vies"] -= 1
grenouille_ent = ctx.E("grenouille")
if ctx.vars["vies"] <= 0:
ctx.vars["mort"] = True
if grenouille_ent is not None:
grenouille_ent.alive = False
else:
if grenouille_ent is not None:
grenouille_ent.x = GRENOUILLE_DEPART_X
grenouille_ent.y = GRENOUILLE_DEPART_Y
LORS_COLLISION("grenouille", "voiture", collision_voiture)
fc.START_STANDALONE("principale")Projets typiques en classe
frameCraft ne se limite pas aux jeux d’arcade
La même structure peut être utilisée pour des jeux classiques, des simulations, des visualisations mathématiques et des expériences créatives. frameCraft convient ainsi aussi bien aux cours d’informatique qu’aux projets interdisciplinaires en STEM.
Jeux classiques
Snake, Breakout, Tetris, Pong, Frogger et d’autres petits jeux d’arcade sont idéaux pour modéliser les déplacements, les collisions et les états du jeu.
Simulations
Le mouvement, la vitesse, la quantité de mouvement, les collisions, les ondes, les oscillations et les modèles multi-agents peuvent être explorés comme des systèmes dynamiques.
Visualisations créatives
Les symétries, les motifs, les espaces colorimétriques, les images génératives et les visualisations de données relient la programmation à la création.

Conçu pour les établissements scolaires
Dans le navigateur, structuré et flexible
En combinant une approche proche de pygame, une exécution dans le navigateur avec CodeRoom et une API pédagogique simplifiée, frameCraft devient un outil pratique pour les cours, les projets, la différenciation pédagogique et les activités courtes.
Les enseignants bénéficient de composants clairs et d’une mise en place plus rapide des projets. Les élèves profitent de résultats visibles, de tâches créatives et d’une approche qui reste liée aux concepts fondamentaux de l’informatique.
Étape suivante
frameCraft transforme pygame en un outil d’apprentissage actif de l’informatique
Accessible, structuré et fondé sur des projets : les élèves créent leurs propres programmes interactifs tout en découvrant des concepts fondamentaux comme les conditions, les boucles, les fonctions, les états, les collisions, les structures de données et la modélisation.