Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

J2ME: GameCanvas nece da saradjuje

[es] :: Java :: J2ME: GameCanvas nece da saradjuje

[ Pregleda: 1833 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Duke Nukem
Miroslav Mitic
dipl.mas.ing - tehnolog za hidrauliku/
REL, MAG panciranje i zavarivanje bla
bla...
Lazarevac

Član broj: 38933
Poruke: 143
*.eunet.yu.



+1 Profil

icon J2ME: GameCanvas nece da saradjuje19.03.2008. u 13:17 - pre 196 meseci
Problem je sa obradom dogadjaja GameCanvasa (sledecu funkciju poziva glavna nit na svakih 50 ms)

Code:

protected void checkPress() // obrada dogadjaja sa tastature telefona
{
int key; // nevazno
try
 {
int keyState = getKeyStates();

      if ((keyState & KEY_NUM1) != 0)
                {

              key = 1; // jedinica pretisnuta
              System.out.println("Stiso si 1"  );

              }
      else if ((keyState & KEY_NUM2) != 0)
                {

              key = 2; // dvojka pretisnuta
              System.out.println("Stiso si 2");
              
              }    
      else if ((keyState & KEY_NUM3) != 0)
                {
              
              key = 3; //trojka  pretisnuta
              System.out.println("Stiso si 3");
              
              }          
      else if ((keyState & KEY_NUM4) != 0)
                {
              
              key = 4; //cetvorka  pretisnuta
              System.out.println("Stiso si 4");
              
              }          
      else if ((keyState & KEY_NUM5) != 0)
                {
              
              key = 5; // jedinica pretisnuta
              System.out.println("Stiso si 5");
              
              }     
      else if ((keyState & KEY_NUM6) != 0)
                {
              
              key = 6; // jedinica pretisnuta
              System.out.println("Stiso si 6");
              
              }
              else
               {
                
//                //
              
               }
  
    
               
      
    } catch(Exception e)
       {    
        displayError(e); // korinicki defnisano
       }     
    // System.out.println("key = " + key); // temp  


    
     
      }


Kod mene reaguje (ispisuje konzolu) samo ako se pritisne taster 2, 4 i 6. Kada se pritisne 6 prikazuje da je pritisnuo 1 ?
Probao sam da direktno hvatam i obradjujem keyState promenjivu ali ucinak je slab.

Pitanje: Zasto tasteri 1 , 3 5 ne reaguju a 6 vrava da je pritisnuta 1 ????

Hvala.
Tape loading error
 
Odgovor na temu

-pixi-
dk

Član broj: 134302
Poruke: 23
..eneric-hostname.arrownet.dk.



Profil

icon Re: J2ME: GameCanvas nece da saradjuje20.03.2008. u 22:14 - pre 196 meseci
Kao prvo kada provjeravas jeli jedan variable jedank drugom to se nepise:

Code:
if((keyState & KEY_NUM1) != 0)

Nego:
Code:
if(keyState == KEY_NUM1)


Ako zelis da provjeris jesu li variable istog tipa onda, koliko se sjecam, postoji metoda equals(). Googlaj malo za ovo.
Osim toga bolje bi bilo da podjelis ovo kontrolises switch case-ovima:

Code:

switch(keyState){
  case KEY_NUM1:
    System.out.println("Stiso si 1");
    break;
  case KEY_NUM2:
    System.out.println("Stiso si 2");
    break;  case KEY_NUM3:
    ...
    ...
}

 
Odgovor na temu

Duke Nukem
Miroslav Mitic
dipl.mas.ing - tehnolog za hidrauliku/
REL, MAG panciranje i zavarivanje bla
bla...
Lazarevac

Član broj: 38933
Poruke: 143
*.eunet.yu.



+1 Profil

icon Re: J2ME: GameCanvas nece da saradjuje23.03.2008. u 07:13 - pre 195 meseci
Hvala na odgovoru nije pomoglo jer je problem banalan, naime ne slaze se dokumentacija (MIDAP 2.0 JSR 118) sa toolkitom (Version 2.2 (25.10.2004. 22.21) Java vendor: Sun Microsystems Inc. Java version: 1.6.0_03 Operating system: Windows XP
Operating system version: 5.1 Architecture: x86) koje koristim i to:

U dokumentaciji stoji za klasu Canvas sledeca konstanta
public static final int KEY_NUM1 cija je vresnost 49 ,za taster 2 je 50 i tako redom ali realno je stanje drugacije
Naime prostim stampanjem na konzoli System.out.println(" key state =" + keyState);
dobije se : "taster 1" odgovara 512 "taster 2" odgovara 2 "taster 3" odgovara 1024 itd...

Napominjem da sam toolkit i dokumentaciju downloadovao odjednom pa sam predpostavljao da pasuju.
Tape loading error
 
Odgovor na temu

[es] :: Java :: J2ME: GameCanvas nece da saradjuje

[ Pregleda: 1833 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.