Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Alvin_ti4200
    félisten

    Nagyjából érthető, nekem csak a 9 db IF szúrt szemet.

    Rakd be tömbbe a lenyomható gombokat, vizsgáld meg, a tömbben van-e a lenyomott gomb
    és egyezik-e azzal ami kell neked, ha igen adj pontot, ha nem, vonj le egyet.

    kb így :
    if nyomtak_le_gombot then
    pontszam+=(lenyomhato_gombok[veletlen] == lenyomott_gomb) ? 1 : -1;
    else lejart_az_ido then /* nem nyomott meg semmit és már vált a lámpa */
    pontszam-=1;

    megcsináltam az alábbi módon:) (remélem jól értelmeztem a mondani valódat:D)

    int[] tomb1={25,85,145,25,85,145,25,85,145};
    int[] tomb2={50,50,50,110,110,110,170,170,170};
    int[] gombtomb={512,2,1024,4,256,32,2048,64,4096};
    Random rnd=new Random();
    int veletlen=rnd.nextInt(8);
    dx=tomb1[veletlen];
    dy=tomb2[veletlen];
    sprite.next(dx,dy,veletlen);
    lm.paint(g,0,0);
    flushGraphics();
    int keyStates=getKeyStates();
    if (keyStates==gombtomb[veletlen]){
    pontszam++;
    }
    else{
    if(keyStates!=0){
    pontszam=(pontszam)-1;
    }
    }

    Apró szépséghiba, hogy az időzítések össze-visszasága miatt a jó billentyűleütéseket is néha rossznak veszi és fordítva, illetve valamiért a 2,4,5,6,8 gombok értéke nulla:F Pedig tudomásom szerint azok felveszik a LEFT_PRESSED, RIGHT_PRESSED, UP_PRESSED, DOWN_PRESSED és FIRE_PRESSED értékeit is. A gombtomb[]-ben a gombok sorrendjében tároltam le a koordinátákat, tehát az index maga a gomb száma. Lehet az a gond, hogy a paint és/vagy flushgraphics után tettem a feltételeket?

Új hozzászólás Aktív témák