ďťż
 
keyRepeated ďťż
 
keyRepeated
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

keyRepeated



Michal - 13-03-2006 11:37
keyRepeated
  Wlasnie jestem w trakcie pisania gry na komorke i mam taki oto problem.
Chcialem zeby obiekt na ekranie przesuwal sie takze w momencie kiedy
uzytkownik nadusi i przytrzyma przycisk. Znalazlem w dokumentacji funkcje
KeyRepeated. Niestety nie dziala.
Czyli mam np. kod :
public void keyRepeated(int key) {
int action = getGameAction(keyCode);

switch (action) {
case LEFT:
bat.moveLeft();
break;
case RIGHT:
bat.moveRight();
break;
}
repaint();
}

Jak nacisne klawisz to nic sie nie dzieje jak zmienie nazwe funkcji na
keyPressed to dziala tylko wtedy jak sie przytrzymuj klawisz to nic sie nie
dzieje. Dodam ze testy przeprowadzalem w symulatorze WTK. Czy to blad z
mojej strony czy moze zla implementacja keyRepeated ?





clyde - 13-03-2006 11:37

  Michal napisał(a):
> Wlasnie jestem w trakcie pisania gry na komorke i mam taki oto problem.
> Chcialem zeby obiekt na ekranie przesuwal sie takze w momencie kiedy
> uzytkownik nadusi i przytrzyma przycisk. Znalazlem w dokumentacji funkcje
> KeyRepeated. Niestety nie dziala.
> Czyli mam np. kod :
> public void keyRepeated(int key) {
> int action = getGameAction(keyCode);
>
> switch (action) {
> case LEFT:
> bat.moveLeft();
> break;
> case RIGHT:
> bat.moveRight();
> break;
> }
> repaint();
> }
>
> Jak nacisne klawisz to nic sie nie dzieje jak zmienie nazwe funkcji na
> keyPressed to dziala tylko wtedy jak sie przytrzymuj klawisz to nic sie nie
> dzieje. Dodam ze testy przeprowadzalem w symulatorze WTK. Czy to blad z
> mojej strony czy moze zla implementacja keyRepeated ?
>
>
Hm.. nie bardzo rozumiem problem
Ale:
obsluga klawiszy w j2me jest dosc uproszczona
-jak wcisniesz dostajesz keyPressed z nr klawisza
-jak puscisz dostajesz keyReleased z numerem klawisza
-w wielu telefonach nie ma oblsugi wcisniecia wielu klawiszy na raz. Tzn
jak trzymasz wcisniety jeden klawisz to nie dostaniesz sygnalu
wcisniecia drugiego dopoki nie zwolnisz tego pierwszego. W nowszych
telefonach jest juz lepiej, ale i tak ta liczba jest ograniczona do
dwoch lub 3 klawiszy. Najgorsze jest to ze, nie jest to wymagane. Zatem
implementacja moze byc dowolna.

TO w zasadzie wszystko co cie powinno interesowac

Jezeli z zalozenia nie chcesz obslugiwac wiecej niz 1 klawisza na raz
(kwestia kompatybilnosci w dol) to po prostu zatrzymuj klawisz wcisniety
i zwrocony w keyPressed w jakiejs zmiennej i w glownej petli go
analizuj dopoki funkcja keyReleased nie zaznaczy (na tej zmiennej) ze
klawisz juz zostal wycisniety.

Jezeli mimo wszystko chcesz miec mozliwosc oblsugi wiecej niz 1 klawisza
, mozesz skorzystac z dobrodziejstw MIDP 2.0 i tzw supress key Events
oraz metody getKeyStates().
Po szczegoly najlepiej zajzec do dokumentacji klasy
javax.microedition.lcdui.game.GameCanvas

--

clyde




Lukasz - 13-03-2006 11:37

  > getKeyStates().

Jaki masz typ komórki?

Potwierdzam u mnie (Sony Ericsson) KeyRepeted równiez nie chciał działać i
to nie tylko na WTK, ale równiez na real device. Używać getKeyStates().

--
Lukasz
N 50 05' 04"
E 19 53' 43"
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    tabeze z Worda do Corela Prosty edytor diagramow ERD z zapisem xml PS nic nie otwiera :-/ layer style Kubek w 3D studio Max [MSSQL] problem z (od)tworzeniem BD ze skryptu ProFTPd i mod_sql =?iso-8859-2?q?Ile_mo=BFna_pod=B3=B1czy=E6_klient=F3w_do_SQL_ Server_2005_Express=3F?= [MSSQL] autoincrement Oracle 8
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • sulimczyk.pev.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com