frameCraft – Pedagogisk utökning för pygame
Pedagogisk utökning för pygame
frameCraft tar visuell programmering in i klassrummet
Spelutveckling, simuleringar och visuell programmering är mycket motiverande för elever. Att börja direkt med traditionella ramverk innebär dock ofta onödig teknisk komplexitet i undervisningen.
frameCraft lägger ett pedagogiskt förenklat lager ovanpå pygame: elever kan bygga interaktiva projekt snabbare och fokusera på logik, algoritmer, tillstånd och modellering i stället för detaljer i spelmotorn.

Lägre tröskel, synliga resultat och tydliga spelstrukturer: frameCraft gör pygame mer tillgängligt för vardagen i klassrummet.
Varför frameCraft?
Mindre fokus på spelmotorn, mer informatik
frameCraft är inte en traditionell utökning av en spelmotor, utan ett pedagogiskt verktyg för modern informatikundervisning. Biblioteket minskar tekniska hinder utan att dölja de grundläggande begreppen.
Snabb start
Vanliga pygame-komponenter som spelloop, händelsehantering och rendering samlas i ett elevvänligt API. Det gör att elever snabbare kan skapa sina första fungerande program.
Tydlig struktur
Scener, regler, objekt, kollisioner och tillstånd är tydligt separerade. Det stödjer begriplig kodorganisation och modellering.
Projektbaserat lärande
Spel, simuleringar och visuella modeller växer steg för steg: från det första objektet till HUD, nivålogik och slutlig finputsning.

Pedagogiskt värde
Synliga projekt skapar meningsfulla lärandesituationer
Tidiga upplevelser av att lyckas är särskilt viktiga i undervisningen. När en figur rör sig, objekt kolliderar eller ett speltillstånd förändras synligt får eleverna direkt erfarenhet av abstrakta informatikbegrepp.
Det gör det möjligt att arbeta praktiskt med centrala begrepp som modularisering, abstraktion, algoritmiskt tänkande, datastrukturer och objektorienterad modellering.
Öppet och portabelt
Börja i CodeRoom – fortsätt med Python och pygame
frameCraft finns som ett open source-projekt på GitHub och som ett Python-paket på PyPI. Projekt som skapas i CodeRoom kan därför också vidareutvecklas utanför lärplattformen med vanlig CPython och pygame.
Open source på GitHub
Källkoden för frameCraft är offentligt tillgänglig. Versioner, exempel och den fortsatta utvecklingen av biblioteket kan följas direkt på GitHub.
Installera från PyPI
För lokal utveckling med vanlig Python och pygame kan frameCraft installeras direkt med pip.
pip install pygame-framecraftKurssamling
Fyra spelprojekt visar olika sätt att använda frameCraft
Frogger ger en särskilt lättillgänglig introduktion till rörelse, körfält, nivåstruktur och kollisioner. De andra projekten breddar innehållet: Breakout fokuserar på studs och blockrutnät, Space Invaders introducerar objektgrupper och pooler, och Flappy Colors Flight kombinerar inmatning, gravitation och ökande svårighetsgrad.

Komplett Frogger-projekt
Kursen går från den första scenen till rörelse, touchknappar, datadrivna bilar, liv, vinstvillkor, HUD, omstartslogik och grafisk finputsning.
Se kursen
Skapa Breakout
Breakout koncentrerar spelutvecklingen till racket, boll, blockrutnät, studs, poäng, liv, förlustzon och omstartslogik.
Se kursen
Flappy Colors Flight
Projektet kombinerar en synlig spelfigur, inmatning för vingslag, gravitation, rörpar, en entity-pool, poängräkning och ökande svårighetsgrad.
Se kursen
Space Invaders
Arcadeprototypen visar hur projektiler, fiendegrupper, nästlade loopar, kollisioner, poäng, tillstånd och effekter samverkar.
Se kursenVälj ett projekt
Varje projekt lyfter fram olika informatikbegrepp
Kurserna är mer än bara varianter av samma spelidé. De stödjer olika lärandemål och kan väljas utifrån elevgrupp, tillgänglig tid och ämnesfokus.
Frogger: tillstånd på spelplanen
Passar bra för körfält, rörelse i diskreta riktningar, nivågränser, liv och vinstvillkor.
Breakout: kollisioner som kärnregel
Lämpligt för undervisning om studs, träffdetektering, blockrutnät, räknare, förlustzoner och tydliga game-over-mekanismer.
Flappy: rörelse och svårighetsgrad
Ett tydligt exempel för hastighet, gravitation, tidsbaserade uppdateringar, återanvändning av hinder, engångspoäng och spelbalansering.
Space Invaders: organisera grupper av objekt
Användbart för loopar, nästlade loopar, numrerade entities, projektilpooler, fiendegrupper, kollisionshantering och effektpooler.
Läsbar kod
Spelreglerna står i centrum
Med frameCraft behöver eleverna inte börja med spelmotorns interna detaljer. De viktigaste idéerna syns direkt i koden: objekt använder taggar, speltillstånd lagras i scenen och regler och kollisioner förändrar spelet.
- Taggar kopplar logiskt samman relaterade objekt.
- ctx.vars lagrar speltillstånd som liv, poäng eller game over.
- Kollisionshanterare gör händelsestyrd logik tydlig och läsbar.
import frameCraft as fc
GRODA_START_X = 160
GRODA_START_Y = 180
BIL_BREDD = 46
BIL_HOJD = 20
SPEL(
"Frogger - Kollisioner",
fonster=(320, 200),
fps=30,
bakgrund=(30, 120, 40)
)
SCEN("huvud", liv=5, dod=False)
@BYGG_SCEN("huvud")
def bygg(ctx):
OBJEKT("groda", pos=(GRODA_START_X, GRODA_START_Y), tag="groda")
REKTANGEL("groda", 24, 24, utlosare=True)
OBJEKT("bil_0", pos=(40, 100), tag="bil")
REKTANGEL("bil_0", BIL_BREDD, BIL_HOJD, utlosare=True)
HASTIGHET("bil_0", 90, 0)
def kollision_bil(ctx, groda_e, bil_e):
if ctx.vars.get("dod"):
return
ctx.vars["liv"] -= 1
groda_ent = ctx.E("groda")
if ctx.vars["liv"] <= 0:
ctx.vars["dod"] = True
if groda_ent is not None:
groda_ent.alive = False
else:
if groda_ent is not None:
groda_ent.x = GRODA_START_X
groda_ent.y = GRODA_START_Y
VID_KOLLISION("groda", "bil", kollision_bil)
fc.START_STANDALONE("huvud")Typiska klassrumsprojekt
frameCraft är inte begränsat till arkadspel
Samma struktur kan användas för klassiska spel, simuleringar, matematiska visualiseringar och kreativa experiment. Därför passar frameCraft både i informatikundervisning och i ämnesövergripande STEM-projekt.
Klassiska spel
Snake, Breakout, Tetris, Pong, Frogger och andra små arkadspel passar bra för att modellera rörelse, kollisioner och speltillstånd.
Simuleringar
Rörelse, hastighet, rörelsemängd, kollisioner, vågor, svängningar och agentbaserade modeller kan undersökas som dynamiska system.
Kreativa visualiseringar
Symmetri, mönster, färgrymder, generativa bilder och datavisualiseringar kopplar programmering till kreativ gestaltning.

Skapat för skolor
Webbläsarbaserat, strukturerat och flexibelt
Genom att kombinera ett pygame-baserat arbetssätt, körning i webbläsaren med CodeRoom och ett pedagogiskt förenklat API blir frameCraft ett praktiskt verktyg för lektioner, projekt, differentierat lärande och kortare aktiviteter.
Lärare får tydliga byggblock och snabbare projektstart. Elever får synliga resultat, kreativa uppgifter och ett arbetssätt som fortfarande är nära kopplat till centrala informatikbegrepp.
Nästa steg
frameCraft gör pygame till ett verktyg för aktivt lärande i informatik
Tillgängligt, strukturerat och projektbaserat: elever skapar egna interaktiva program samtidigt som de lär sig centrala begrepp som villkor, loopar, funktioner, tillstånd, kollisioner, datastrukturer och modellering.