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.
