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.

frameCraft comme extension pédagogique pour pygame

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.

1

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.

2

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.

3

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.

Concept frameCraft avec scènes, objets, règles et résultats visibles

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-framecraft

Collection 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.

Aperçu du cours Frogger

Projet Frogger complet

12 modulesNiveaux & collisions

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
Aperçu du cours Breakout

Créer Breakout

6 modulesBalle & rebonds

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
Aperçu du cours Flappy Colors Flight

Flappy Colors Flight

12 modulesPhysique & équilibrage

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
Aperçu du cours Space Invaders

Space Invaders

11 modulesPools & essaims

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 cours

Choisir 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.

Projet Space Invaders avec collisions, score et retour visuel du jeu

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.