Verschillende schermen in een spel
Een spel heeft vaak verschillende schermen: een titelscherm, het spel zelf, een winnend scherm en een verliezend scherm. Dat hoeven geen aparte programma’s te zijn. Eén programma kan onthouden welk scherm actief is.
Dit artikel bouwt voort op toestand. We beschrijven de veranderingen eerst met tekst, voordat we tekeningen of knoppen toevoegen.
Kies de volgende kamer
Stel je de schermen voor als kamers met deuren ertussen. Start brengt je van de titel naar het spelen. Winnen brengt je van het spelen naar de winnaarskamer. Sommige deuren mogen alleen vanuit bepaalde kamers werken.
Een verandering van de ene toestand naar de andere heet een overgang. Met een overgangstabel bepaal je de regels voordat je iets tekent.
| Huidig scherm | Actie | Volgend scherm |
|---|---|---|
| Titel, gewonnen of verloren | Start | Spelen |
| Spelen | Winnen | Gewonnen |
| Spelen | Verliezen | Verloren |
Ons prototype laat Start ook tijdens het spelen toe om een ronde opnieuw te beginnen.
Oefen een spelverloop
De actielijst is verzonnen invoer. Zo testen we een hele reeks zonder op knoppen te klikken.
# taal: nl
laat scherm = "titel"
zeg scherm
voor actie in ["start", "win", "start", "verlies"]:
als actie == "start":
zet scherm = "spelen"
anders:
als scherm == "spelen":
als actie == "win":
zet scherm = "gewonnen"
als actie == "verlies":
zet scherm = "verloren"
zeg scherm
Voorspel en probeer
Kan de tweede Start ons terugbrengen vanaf het winnende scherm?
titel
spelen
gewonnen
spelen
verloren
Ja. Het huidige scherm is één tekstwaarde. Dat voorkomt combinaties zoals ‘tegelijk gewonnen en verloren’. Die maak je makkelijk per ongeluk met verschillende losse waar/onwaar-vlaggetjes.
Jouw uitdaging
Zet "win" aan het begin van de actielijst, vóór Start. Het titelscherm moet dan onveranderd blijven. Leg uit welke voorwaarde voorkomt dat een speler al wint voordat die speelt.
Een veelgemaakte fout
Een afbeelding veranderen zonder de onthouden toestand bij te werken, kan knoppen laten reageren alsof het vorige scherm nog actief is. Teken in een grafische versie de scène die bij scherm past. Verwerk alleen de acties die daar mogen. De teksten hier zijn jouw eigen labels, geen bijzondere Pliro-sleutelwoorden.
