-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Pauzeren in het spel werkt praktisch gezien niet.
Hieronder een verdere uitleg, met ook oplossingsrichting.
De GameEngine klasse heeft pauseGame() en resumeGame() methodes. Alleen praktisch gezien zijn deze niet te gebruiken. Want typisch wil je op basis van keypressed het spel pauzeren en ook weer onpauzer. Het eerste lukt nog wel, maar het tweede niet, want op het moment dat je vanuit een keypressed het spel op pauze zet kun je vervolgens geen toetseninput meer binnen omdat de GameThread dan op pause staat, en de keyPressed methode uit GameObjects allen op deze thread draaien.
Het is logischer om op centraal niveau de pauzeknop af te handelen; dus buiten de gamethread. Een togglePaused methode is dan logischer, dan twee aparte methoden (zonder isPaused property en/of getter/methode op de GameEngine zou je deze elders moeten gaan bijhouden i.p.v. op de GameEngine wat ook onwenselijk is.
De pauzeknop is dan wel in te stellen via een GameEngine.setPauseButton(int key) button, maar heeft een logische default, namelijk de p toets (kleine letter of grote letter).
Andere toetsen dan de pauzeknop forward de keyPressed methode dan nog steeds naar alle klassen die `IKeyInputz implementeren, zoals al het geval is.