zum Inhalt springen
Java lernen durch Ausprobieren!
Benutzer-Werkzeuge
Anmelden
Webseiten-Werkzeuge
Suche
Werkzeuge
Seite anzeigen
Ältere Versionen
Links hierher
Letzte Änderungen
Medien-Manager
Übersicht
Anmelden
>
Letzte Änderungen
Medien-Manager
Übersicht
Zuletzt angesehen:
api:documentation:grafik:keystate
====== Steuerung von Grafikobjekten per Tastatur ====== <WRAP center round info 100%> Stell' Dir die Steuerung eines Mario-artiges Jump'n Run-Spieles vor: solange der Spieler die "Pfeil-nach-rechts"-Taste gedrückt hält, soll sich die Spielfigur nach rechts bewegen. Sobald der Spieler die Taste loslässt, sollt die Spielfigur stehenbleiben. Wie lässt sich das programmtechnisch umsetzen? \\ \\ Wir könnten die Methoden ''onKeyDown'' und ''onKeyUp'' aus dem Kapitel über die Tastatur- und Mausereignisse nutzen. Da sie beim gerade geschilderten Ablauf nur jeweils einmal aufgerufen werden, die Spielfigur sich zwischen den beiden Methodenaufrufen aber weiter bewegen soll, müssten wir den Zustand "Pfeil-nach-rechts-Taste ist gerade unten" dazwischen speichern und regelmäßig (z.B. in der ''act''-Methode) auswerten, um die Spielfigur weiter voranzubewegen. \\ \\ Genau dabei unterstützt uns unser API: Jedes Grafikobjekt (genauer: jede von Actor abgeleitete Klasse) hat zwei Methoden ''isKeyUp(String key)'' und ''isKeyDown(String key)'', mit denen sich jederzeit für jede Taste der Tastatur ermitteln lässt, ob sie gerade nach unten gedrückt ist. Diese Methoden nutzen wir, um den Zustand unserer Grafikobjekte in der ''act''-Methode regelmäßig zu verändern und sie so beispielsweise abhängig von den gedrückten Tasten zu bewegen. </WRAP> <HTML> <div style="clear: both"></div> </HTML> ===== Beispiel 1: Pfeiltasten steuern Ball ===== <HTML> <div class="java-online" style="height: 450px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'PfeiltastenSteuernBall'}"> <script type="text/plain" title="PfeiltastenSteuernBall.java"> new World(800, 800); new Ball(400, 400, 30); class Ball extends Circle { double v = 8; public void act() { if(isKeyDown(Key.ArrowLeft)) { move(-v, 0); } if(isKeyDown(Key.ArrowRight)) { move(v, 0); } if(isKeyDown(Key.ArrowUp)) { move(0, -v); } if(isKeyDown(Key.ArrowDown)) { move(0, v); } } } </script> </div> </HTML>
api/documentation/grafik/keystate.txt
· Zuletzt geändert:
2024/08/31 10:03
von
127.0.0.1
Seiten-Werkzeuge
Seite anzeigen
Ältere Versionen
Links hierher
Nach oben