Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meerdere toetsen tegelijk kunnen indrukken in API #4

Open
ralphniels opened this issue Mar 4, 2016 · 0 comments
Open

Meerdere toetsen tegelijk kunnen indrukken in API #4

ralphniels opened this issue Mar 4, 2016 · 0 comments
Labels

Comments

@ralphniels
Copy link
Contributor

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.
@ralphniels ralphniels added the wens label Mar 4, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant