URL: https://www.overclockers.at/coding-stuff/j2me_key_num1_status_abrufen_180825/page_1 - zur Vollversion wechseln!
damn, ich such jetzt schon seit ner stunde nach ner lösung, aber die doku is mies (oder ich finds einfach nicht) und im internet beziehen sich alle code-examples auf LEFT_PRESSED usw.
also, wie kann ich in einem GameCanvas abrufen ob die tasten 1-9 gedrückt worden sind?
TIA
tom
Du musst dir die Methode keyPressed (int keyCode) überschreiben.
dann kannst du ganz bequem zugreifen:
Code:if (keyCode == KEY_NUM2) { // tu was }
hab ich vergessen dazugeschrieben, wenn ich die keyPressed-Methode überschreibe bringt das leider auch nix -> die methode wird einfach nicht aufgerufen wenn ich ne nummerntaste drücke (funzt nur bei 2,4,5,6,8 -> also die tasten die durch up/down/fire usw. doppelbelegt sind!)
komisch ist das... und extrem lästig :-( dieser blödsinn raubt mir jetzt schon beinahe 2h...
btw.: neuste java version + wireless toolkit, neuste eclipse-version+j2me-plugin.
hmm...
Strange.. bei mir funktionierts allerdings.
Das was du beschreibst ist die Methode getGameAction.
die liefert dir UP, DOWN, LEFT, RIGHT, FIRE.
den restlichen Zahlenblock (0-9) solltest du einfach abfangen können wie ich oben geschrieben hab
ein kleiner Auszug aus meinem funktionierenden Programm:
Code:public void keyPressed(int keyCode){ switch(this.getGameAction(keyCode)){ case FIRE: System.out.println("FIRE was pressed"); break; } if (keyCode == KEY_NUM2) { System.out.println("Pressed: 2"); } }
mhm, strange triffts genau ja... folgendes verhalten herausgefunden
@ keyPressed:
die methode wird bei mir nur ausgeführt wenn ich auf 2,4,5,6 und 8 betätige... NICHT bei den restlichen nummerntasten und auch nicht bei UP,DOWN,LEFT, FIRE.
dein beispielcode funktioniert dementsprechend zwar für die 2er-taste, aber nicht für fire... und 1...
wenn ich mir jetzt die übliche variante anschau:
Code:int keyStates = getKeyStates(); System.out.println("Keystates: " + keyStates);
funktionierts im emulator oder am handy selbst nicht?
versuch mal vielleicht statt der methode keyPressed die Methode keyReleased zu probieren.
Facetious
simulator.... hab keine möglichkeit des auf meinem handy zu testen (ka datenkabel und handy ka bluetooth... weiß nitmoi ob des j2me kann *lol*)... werds morgen mal auf ner anderen maschine und nem handy testen.
ok update von nem anderen computer (eclipse 3.1, java 1.5.0_09, WTK2.2) -> beide varianten funktionieren, sowohl bei keyPressed als auch bei den keyStates bekomm ich alle codes geliefert hier.... lustig... also liegts wohl an der "neueren" software auf meinem computer (eclipse 3.2, java 6 01, wtk2.5)
Problem gelöst?
wenn ja, dann viel spaß noch
mfg Facetious
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025