Bij gebruik van de methode keyPressed kan maar één toets tegelijkertijd worden afgehandeld. Wil je meerdere toetsen tegelijk willen kunnen indrukken (bijvoorbeeld springen en in een bepaalde richting bewegen tegelijk), dan kun je daarvoor de volgende oplossing implementeren:
Maak een klasse (bijvoorbeeld met de naam Toets) met daarin twee variabelen:
Een char voor de ingedrukte toets
Een boolean die aangeeft of de toets is ingedrukt, met daarbij een getter en een setter
Maak een arraylist aan waarin je voor elke toets die je wil ondersteunen een object van het type Toets zet, plaats deze in de klasse die de toetsafhandeling regelt (mogelijk is dat de speler)
Zorg dat de keyPressed-methode van die klasse door de arraylist loopt en het object behorende bij de ingedrukte toets op true zet (via de setter).
Doe hetzelfde bij de keyReleased-methode, maar zet daar de waarde op false (via de setter).
In de update-methode van de klasse kun je nu door de arraylist loopen en nagaan welke toets ingedrukt was. Let op: als een toets ingedrukt blijft, wordt dit in elke update geconstateerd, dus mogelijk zul je iets moeten inbouwen dat voorkomt dat de actie heel vaak herhaald wordt.
Bij gebruik van de methode keyPressed kan maar één toets tegelijkertijd worden afgehandeld. Wil je meerdere toetsen tegelijk willen kunnen indrukken (bijvoorbeeld springen en in een bepaalde richting bewegen tegelijk), dan kun je daarvoor de volgende oplossing implementeren: