Pygame objektorientiert: Braucht es die Klasse GameWorld?

Pygame
Greenfoot
Spieleprogrammierung
OOP
Autor:in

Jörg Kantel

Veröffentlichungsdatum

20. Juni 2023

Da ich letzte Nacht wegen der sommerlichen Schwüle nicht richtig einschlafen konnte, ging mir im Halbschlaf mein Projekt »Pygame (sauber) objektorientiert« nicht aus dem Kopf, für das ja mein von Jonathan Cooper inspiriertes Jump-and-Run-Spiel eine Art Referenz-Implementierung für Pygame in Pygbag (damit es auch im Browser zu spielen ist) werden soll.

Mich beschäftigte dabei in der Hauptsache die Frage, ob die Klasse GameWorld wirklich notwendig und sinnvoll sei? Denn schon bei meinen ersten Überlegungen stand sie ziemlich einsam und eigentlich funktionslos im Raum,

GameWorld in Pygame

während sie in Greenfoot, das ja die Blaupause für meine Implementierung war, eher eine Klasse ist, in der die anderen Klassen leben:

GameWorld in Greenfot

Daher fragte ich mich, ob Pygames Hauptprogramm nicht selber schon die Funktion besitzt, die die Klasse World (oder GameWorld) in Greenfoot besitzt? Zumal zum einen die Objektorientierung in Java strenger behandelt wird als in Python, und zum zweiten ich die run()-Methode wegen der Eigenheiten der Pygbag-Implementierung sowieso aus GameWorld herauslösen und in die main()-Funktion (und dort in die while True-Hauptschleife) auslagern mußte.

Das trägt sicher nicht zur Klarheit bei, die ich mit (m)einem OOP-Ansatz eigentllich erreichen wollte. Daher sollte ich bei dem sowieso geplanten Refaktoring diesen Ansatz noch einmal überdenken.

Wenn ich mich recht erinnere, hatte KidsCanCode in seinem Platformer-Projekt« schon vor etlichen Jahren eine Art GameWorld-Klasse in Pygame eingeführt. Ich sollte mir also die Playlist noch einmal reinziehen, vielleicht finde ich dort eine Begründung, die meine Zweifel ausräumt.

Ein Seiteneffekt dieser Überlegungen: Die Beschäftigung mit Greenfoot hat mir Spaß gemacht (obwohl ich Java eigentlich nicht mag). Ich habe große Lust bekommen, damit auch einmal etwas absolut Verrücktes und Sinnloses anzustellen. Still digging!

War sonst noch was? Ach ja, unser aller Datenkrake spülte mir noch zwei Videos zu Pygame mit Pygbag in meinen Feedreader:

Die wollte ich Euch nicht vorenthalten.