Kursmal
Programmering av Breakout
Utvikling av Breakout-spill med frameCraft: Grunnleggende struktur, bevegelse, kollisjoner, brukergrensesnitt og spilllogikk.

Didaktisk mål
Denne malen introduserer gradvis utviklingen av et Breakout-spill med frameCraft, og kobler synlige spillobjekter til programmeringslogikk basert på regler. Fokuset er på å bygge en holdbar prosjektgrunnlag, kontrollere objekter, modellere spilltilstander og implementere kollisjoner, poeng, liv og omstartsløsninger. Kompetanseutviklingen kobler sammen **modellering**, **strukturering** og **implementasjon** ved å systematisk lage programmerede komponenter fra profesjonelle spillkomponenter som paddler, baller, blokker, HUD og dødsoner. Fra en akademisk perspektiv skal malen tildeles innen feltet for event- og objektorientert spillutvikling med fokus på tilstandshåndtering, kollisjonsbehandling og kontrollert gjentagelse.
Kompetansefokuspunkter
Malen samler sentrale profesjonelle og metodologiske aspekter av Breakout-utvikling basert på frameCraft.
- Scenestruktur: Scenen setup med hovedscene, inngangsverdier, objekter og registrerte regler.
- Inndata-modell: Kobling av tastatur- og touchkontroller til abstrakte handlinger som venstre, høyre, start og stopp.
- Objektmodellering: Opprettelse av paddel, ball og blokker som spillobjekter med kollisjonsstrukturer og valgfri grafisk representasjon.
- Bevegelseslogikk: Implementering av tidsbasert bevegelse med hastigheter, grenser og refleksjon ved feltkantene.
- Gitteroppbygging: Automatisk generering av et blokk-gitter ved bruk av doble løkker, posisjonsberegning, farge-logikk og tellervariabler.
- Kollisjonshåndtering: Respons på kollisjoner mellom ball-paddel og ball-blokk med bøyevinkler, poengtildelelse og seiersbetingelser.
- Tilstandshåndtering: Styring av HUD, liv, meldinger, game over, seier, restart og flaggblokker.
Komponentenes struktur
Komponentene utvikler Breakout-spillet fra en styrbart grunnscene til ball- og blokklogikk opp mot fullstendig spilltilstandshåndtering.

Sceneoppsett, Input & Paddelbevegelse
Komponenten setter opp den styrbare grunnstrukturen i scenen og gjør paddelen til det første sentrale spillobjektet synlig og bevegelig.

Ballstart, bevegelse, refleksjon mot vegger
Byggsteinen legger til ball som et bevegelig objekt og introduserer startlogikk og refleksjon mot vegger og tak.

Fargeblokkgrid med teller
Byggeblokken overfører individuelle blokker til en systematisk generert grid med unike navn, farge logikk og tellervariabel.

Kollisjoner & Spilllogikk
Byggeblokken kobler kollisjoner med spillregler ved å behandle paddelrefleksjon, blokktreff, poeng og seiersbetingelser.

HUD, Spilltilstand & Gjenstart
Byggeblokken gjør poeng, liv og meldinger synlige og strukturere gjenstartlogikken etter spillets slutt eller seier.

Dødszonen & Blokkflagget
Byggeblokken legger til taplogikk med dødszone, livsredusering, spillets slutttilstand og blokkerende mekanisme mot flere utløsere.
Innhold på et glans
Oversikten viser byggeblokkene i den avsatt rekkefølgen og tilordner deres respektive bidrag til den generelle komposisjonen av malen.
| Byggeblokk | Innholdsfokus | Omfang |
|---|---|---|
| Struktur, Input & Paddelbevegelse | Sceneoppsett, input, paddelobjekt, bevegelsesregler, dt-skaling og grenser. | 30 min, 1 oppgave |
| Start ball, bevegelse, refleksjon mot vegger | Ball-entitet, initialt tilstand, ballstart, veggrefleksjon og posisjonskorrigering. | 25 min, 3 oppgaver |
| Fargekodet blokkgrid med teller | Dobbeltløkke, unike blokknavn, posisjonsberegning, radfarger og blokk-teller. | 25 min, 1 oppgave |
| Kollisjoner & Spilllogikk | Kollisjonshåndtering, bøyevinkel, blokktreff, poeng, blokk-teller og seierbetingelse. | 25 min, 1 oppgave |
| HUD, spilltilstand & Gjenstart | Brukergrensesnittstekster, score og livsvisning, varslingstekst og gjenstart etter sluttsituasjoner. | 25 min, 1 oppgave |
| Dødszon & Blokkflagg | Dødszon, livsdrain, blokkflagg, balltilstandsgjenoppretting og sluttskjerm. | 25 min, 1 oppgave |
De tydelig strukturerte modulene gjør læringstilpassede mål og avhengigheter i spillutvikling synlige. Dette gjør at malen kan lett kobles til undervisningsserier som frameCraft, spillprogrammering og spilllogikk.
Du kan teste malen via en demo-tilgang og tilpasse modulene til din læringssituasjon.