J2ME: KEY_NUM1 status abrufen?!

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/j2me_key_num1_status_abrufen_180825/page_1 - zur Vollversion wechseln!


Master99 schrieb am 31.05.2007 um 19:42

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


Facetious schrieb am 31.05.2007 um 22:41

Du musst dir die Methode keyPressed (int keyCode) überschreiben.
dann kannst du ganz bequem zugreifen:

Code:
if (keyCode == KEY_NUM2) {
 // tu was
}

hth Facetious


Master99 schrieb am 31.05.2007 um 23:55

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.


Facetious schrieb am 01.06.2007 um 11:04

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");
  }
}

Facetious


Master99 schrieb am 01.06.2007 um 21:22

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);

hier bekomm ich zwar codes bei 1,3,7,9 und den ActionButtons (UP..) ABER NICHT wenn ich 2,4,5,6,8 drücke...

ne lösung wär also jetzt ne kombination aus keyPressed für 2,4... und keyStates für den rest... ABER des kanns doch nicht sein oder?!

entweder bei mir hats was oder j2me is einfach ein großer sinnloser blödsinn...


Facetious schrieb am 01.06.2007 um 23:00

funktionierts im emulator oder am handy selbst nicht?

versuch mal vielleicht statt der methode keyPressed die Methode keyReleased zu probieren.

Facetious


Master99 schrieb am 01.06.2007 um 23:07

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.


Master99 schrieb am 02.06.2007 um 09:34

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)


Facetious schrieb am 03.06.2007 um 01:18

Problem gelöst?
wenn ja, dann viel spaß noch :)

mfg Facetious




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025