Avatar billede nephilim Nybegynder
03. november 2003 - 02:47 Der er 3 kommentarer og
1 løsning

KeyListener, flere taster på samme tid

Jeg sidder og leger lidt med et spil hvor jeg bruger piletasterne til at flytte spilleren og z tasten til at skyde med, mit problem er nu at jeg ikke kan flytte spilleren og skyde på samme tid, når z knappen trykkes ned stopper spilleren også. her er koden jeg bruger:

    public void keyPressed(KeyEvent e) {
        //in here do move thingy
        keyPressed = e.getKeyCode();  // which key was pressed
       
        if (keyPressed == KeyEvent.VK_LEFT && !moving) {
            // Move the player left.
            b.setDir(-10,0,1);
            moving = true;
         
        }
        else if (keyPressed == KeyEvent.VK_RIGHT && !moving) { 
            // Move the player right.
            b.setDir(10,0,1);
            moving = true;
         
        }
        else if (keyPressed == KeyEvent.VK_DOWN && !moving) {
            // Move the player down.
            b.setDir(0,10,1);
            moving = true;
         
        }
        else if (keyPressed == KeyEvent.VK_UP && !moving) {
            // Move the player up.
            b.setDir(0,-10,1);
            moving = true;
         
        }
        if (keyPressed == 90){
            //Shoot
            System.out.println("shooting"); //for debugging purpose
            } 
        //if (keyPressed == 39){} // rightarrow
        //System.out.println("" + e);
    }
    public void keyReleased(KeyEvent e) {
        b.setDir(0,0,1);
        moving = false;
        // in here do stop moving thingy
    }

Grunden til at jeg bruger en boolean er at jeg ellers begynder at bevæge mig hurtigere efter at en piletast er holdt nede i et par sekunder.

/Nephilim

PS: Ved ikke om dette løses bedre med InputMap, men jeg har ikke været i stand til at få det til at virke.
Avatar billede tjp Mester
03. november 2003 - 03:33 #1
Skyder den, når du trykker z?
Er det når du slipper z efter skud (og derved kalder keyReleased), at den stopper?
Avatar billede nephilim Nybegynder
03. november 2003 - 04:00 #2
det var det præcist, sikke da en dum fejl :-)
nå men ud over det fik jeg også lavet en del blødere styring, så smid lige et svar tjp, ikke alene løste du problemet, men du gav også en god idé ;-)
Avatar billede arne_v Ekspert
03. november 2003 - 05:44 #3
Af dokumentations hensyn vil jeg foreslå 'Z' i.s.f. 90.
Avatar billede tjp Mester
03. november 2003 - 10:48 #4
Det var da godt - her har du et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester