frameCraft – Didaktische Erweiterung für pygame

Didaktische Erweiterung für pygame

frameCraft macht visuelle Programmierung unterrichtstauglich

Spieleentwicklung, Simulationen und visuelle Programmierung motivieren Schüler:innen besonders stark. Der direkte Einstieg in klassische Frameworks ist im Unterricht aber oft unnötig technisch.

frameCraft erweitert pygame um eine didaktisch reduzierte Schicht: Lernende bauen interaktive Projekte schneller auf und konzentrieren sich auf Logik, Algorithmen, Zustände und Modellierung statt auf Engine-Details.

frameCraft als didaktische Erweiterung für pygame

Einfachere Einstiege, sichtbare Ergebnisse und klare Spielstrukturen: frameCraft bringt pygame näher an den Unterrichtsalltag.

Warum frameCraft?

Weniger Engine-Details, mehr Informatik

frameCraft ist keine klassische Game-Engine-Erweiterung, sondern ein didaktisches Werkzeug für modernen Informatikunterricht. Die Bibliothek reduziert technische Hürden, ohne die fachlichen Konzepte zu verstecken.

1

Direkter Einstieg

Typische pygame-Bausteine wie Game-Loop, Event-Handling und Rendering werden didaktisch gekapselt. Dadurch entstehen schneller erste lauffähige Programme.

2

Klare Struktur

Szenen, Regeln, Objekte, Kollisionen und Zustände werden sichtbar getrennt. Das unterstützt nachvollziehbare Codeorganisation und Modellierung.

3

Projektorientiertes Lernen

Spiele, Simulationen und visuelle Modelle wachsen Schritt für Schritt: vom ersten Objekt bis zu HUD, Level-Logik und Polish.

Pädagogischer Mehrwert

Aus sichtbaren Projekten werden fachliche Lernanlässe

Gerade im schulischen Kontext ist frühe Selbstwirksamkeit entscheidend. Wenn sich Figuren bewegen, Objekte kollidieren oder ein Spielzustand sichtbar wechselt, erleben Lernende abstrakte Informatikkonzepte unmittelbar.

So lassen sich zentrale Prinzipien der Informatik gezielt fördern: Modularisierung, Abstraktion, algorithmisches Denken, Datenstrukturen und objektorientierte Modellierung.

Konkretes Beispiel

Frogger zeigt, wie frameCraft im Unterricht funktioniert

Der Kurs „Frogger komplett: Von Szene bis Polish“ führt Lernende in zwölf Bausteinen von der ersten Szene bis zu Bewegung, Touch-Buttons, Levelaufbau, datengetriebenen Autos, Kollisionen, Leben, Siegbedingung, HUD, Neustart und grafischem Polish.

Vorschaubild des Frogger-Kurses

Vom Spiel zur Unterrichtsreihe

Der Kurs ist nicht nur ein fertiges Spiel, sondern eine strukturierte Vorlage für Unterrichtsplanung, Kompetenzaufbau und eigene Varianten.

Frogger-Baustein: Autos datengetrieben erzeugen

Datengetriebene Gegner

Mehrere Autos werden nicht einzeln zusammengeklickt, sondern über Strukturen, Namen, Schleifen und Parameter erzeugt.

Frogger-Baustein: Kollisionen und Leben

Kollisionen und Leben

Spielzustände werden greifbar: Kollision erkannt, Leben reduziert, Figur zurückgesetzt oder Spiel beendet.

Code wird lesbar

Ein Unterrichtsbeispiel aus Frogger

Im Baustein „Kollisionen & Leben: Frogger-Logik“ wird nicht zuerst über Engine-Interna gesprochen. Die zentrale Idee ist direkt im Code sichtbar: Wenn der Frosch ein Auto berührt, wird ein Leben abgezogen.

  • Tags verbinden Objekte logisch miteinander.
  • ctx.vars speichert Spielzustände wie Leben und Tod.
  • BEI_KOLLISION macht Ereignislogik explizit lesbar.
import frameCraft as fc
FROG_START_X = 160
FROG_START_Y = 180
AUTO_WIDTH = 46
AUTO_HEIGHT = 20
SPIEL("Frogger - Kollisionen", fenster=(320, 200), fps=30, hintergrund=(30, 120, 40))
SZENE("haupt", leben=5, tot=False)
@SZENE_AUFBAU("haupt")
def aufbau(ctx):
    OBJEKT("frosch", pos=(FROG_START_X, FROG_START_Y), tag="frosch")
    RECHTECK("frosch", 24, 24, ausloser=True)
    OBJEKT("auto_0", pos=(40, 100), tag="auto")
    RECHTECK("auto_0", AUTO_WIDTH, AUTO_HEIGHT, ausloser=True)
    GESCHWINDIGKEIT("auto_0", 90, 0)
    def kollision_auto(ctx, frosch_e, auto_e):
        if ctx.vars.get("tot"):
            return
        ctx.vars["leben"] -= 1
        frog_ent = ctx.E("frosch")
        if ctx.vars["leben"] <= 0:
            ctx.vars["tot"] = True
            if frog_ent is not None:
                frog_ent.alive = False
        else:
            if frog_ent is not None:
                frog_ent.x = FROG_START_X
                frog_ent.y = FROG_START_Y
    BEI_KOLLISION("frosch", "auto", kollision_auto)
fc.START_STANDALONE("haupt")

Typische Unterrichtsprojekte

frameCraft ist nicht auf ein Spiel beschränkt

Die gleiche Struktur eignet sich für klassische Spiele, Simulationen, mathematische Visualisierungen und kreative Experimente. Dadurch kann frameCraft sowohl im Informatikunterricht als auch in MINT-Kontexten eingesetzt werden.

Klassische Spiele

Snake, Breakout, Tetris, Pong, Frogger oder kleine Arcade-Spiele eignen sich besonders gut, um Bewegung, Kollisionen und Zustände zu modellieren.

Simulationen

Bewegung, Geschwindigkeit, Impuls, Kollisionen, Wellen, Schwingungen oder Agentenmodelle werden als dynamische Systeme sichtbar.

Kreative Visualisierungen

Fraktale, Symmetrien, Ornamentik, Farbräume, Zufallsbilder oder Datenbilder verbinden Programmierung mit Gestaltung.

Frogger-Grafikformen und Koordinaten mit frameCraft

Für Schulen geeignet

Browserbasiert, strukturiert und flexibel einsetzbar

Durch die Kombination aus pygame-Nähe, browserbasierter Ausführung in CodeRoom und didaktisch reduzierter API wird frameCraft zu einem praxistauglichen Werkzeug für Unterricht, Projekte, Differenzierung und Vertretungsstunden.

Lehrkräfte profitieren von klaren Bausteinen und schnellerem Projektstart. Schüler:innen profitieren von sichtbaren Ergebnissen, kreativen Aufgaben und einem Zugang, der fachlich anschlussfähig bleibt.

Nächster Schritt

frameCraft macht aus pygame ein Werkzeug für aktiven Informatikunterricht

Zugänglich, strukturiert und projektorientiert: Schüler:innen entwickeln eigene interaktive Programme und verstehen dabei zentrale Konzepte wie Bedingungen, Schleifen, Funktionen, Zustände, Kollisionen, Datenstrukturen und Modellierung.