Game states
Last updated
Last updated
Toestandsdiagrammen worden ook gebruikt bij het ontwerpen van computerspellen. Dit dwingt je na te denken over de werking van je spel zonder dat je gelijk gaat programmeren. Zo maak je duidelijk wat er wel en niet kan in je spel. Laten we kijken naar een (versimpeld) voorbeeld van mogelijkheden in een spel.
Speler begint in een startscherm
Speler kan het spel gaan spelen of stoppen
Tijdens het spel kan er een aantal dingen gebeuren
Spel op pauze / spelen
Speler kan dood gaan
Speler kan spel eindigen
Er is een gameover scherm; speler kan hier ook kiezen opnieuw te spelen.
Bij stoppen sluit het spel af
Lijkt duidelijk toch? Maar mag de speler bijvoorbeeld van het startscherm direct naar het game over scherm? Dat zou raar zijn. Of kan het spel uit zichzelf op pauze gezet worden? Om dat overzichtelijk te maken kun je een toestandsdiagram gebruiken zoals hieronder:
Hoe kun je dit nu gebruiken bij het maken van je spel? Je kunt hiermee een structuur maken in je code zodat duidelijk is in welke state je zit en wat dan de mogelijkheden zijn. We kunnen het diagram bijvoorbeeld naar Python omzetten zoals hieronder.
Vergelijk de code maar eens met het diagram. Je ziet:
Per toestand is er een apart blok (if-statement) met wat er gebeurt
In dat blok staat ten eerste wat er in de toestand gedaan moet worden
In ieder blok zie je naar welke andere state je kunt (overgangen)
In dit geval blijft het herhalen totdat je toestand STOP zit.