Gibt es eine Methode in Java, mit der Tastendruck abgefragt werden kann?

5 Antworten

Versuch es mal mit einer abfrage ob c gedrückt ist die den boolian IstGedrückt auf true setzt wenn IstGedrückt auf false ist, oder auf false gesetzt wird wenn er gerade auf true ist. 

Woher ich das weiß:Berufserfahrung – Beruf, Schule, Hobby und eigene Erfahrungen

AdrianKlug 
Beitragsersteller
 20.10.2015, 22:07

Danke für Deine Antwort.
Das hab ich auch schon versucht, leider klappt auch das nicht.

Bei meinem Grafiksystem ist das so, dass ich sowohl für das Drücken als auch für das Loslassen einer Taste eine Aktion auslösen kann. Schau mal in Deinen Unterlagen nach, ob das in Java auch so ist. Dann könntest beim Drücken der Taste eine Sperre setzen, die beim Loslassen wieder aufgehoben wird. Außer dem Drücken einer Taste habe ich auch eine eine Option, die Taste mit dem Mauszeiger nur zu berühren, also darüberzufahren und wieder entfernen. Ich kann mir nicht vorstellen, dass mein 30 Jahre altes Dialogsystem mehr kann als Java.


AdrianKlug 
Beitragsersteller
 20.10.2015, 22:15

Danke für Deine Antwort!
Ich bin ein bisschen doof, wie implementiere ich den KeyListener jetzt genau? Ich würde die Methode keyTyped() benutzen, weiß aber nicht ganz, wie das mit dem keyListener funktioniert; bzw verstehe das nicht ganz.

PerfectMuffin  21.10.2015, 06:04
@AdrianKlug

Wenn du einem java.awt. Component einen KeyListener zuweist, wir diesem als KeyListener registrierten Objekt jedes Mal Bescheid gesagt, wenn etwas passiert.

Wenn ihr externe libaries benutzen dürft, lade dir lwjgl 2.9.3 herunter und installiere es. Wenn du nicht weist wie es geht erkläre ich es dir gerne nochmal. Einfach schreiben. Darin gibt es eine Klasse die sich Keyboard nennt. 

if(Keyboard.isKeyPressed(Keyboard.Key_VK_C)){

}

Oder so ähnlich. Gibe einfach Keyboard.isKey ein und Eclipse sagt dir den Rest.

LG Actyc

Du solltest einfach einen boolean erstellen, der angibt, ob der Computergegner aktiv ist. Dann überprüfst du bei der Steuerung von Spieler 2, ob das der Fall ist.

if steuerung_für_spieler_2
if !computergegner_aktiv
bewege_spieler_2
if computer_gegner_aktiv
bewege_computer
if c_gedrückt
if computergegner_aktiv
computergegner_aktiv = false
else
computergegner_aktiv = true

Mit 'C' schaltest du dann einfach zwischen diesen Modi um. So könnte auch direkt in einem Spiel zwischen Computergegner und menschlichem Spieler 2 umgeschalten werden.