I'm creating a simple breakout game. However, the KeyAdapter isn't receiving the input. The code looks fine to me but maybe I'm missing something more basic?
public DatGamePanel(BustOut bo, long framerate) {
setBackground(Color.black);
setPreferredSize( new Dimension(GAME_WIDTH,GAME_HEIGHT));
setFocusable(true);
font = new Font("Sans Serif", Font.BOLD, 24);
fm = this.getFontMetrics(font);
this.bo = bo;
period = 1000/framerate;
bat = new Bat("bat.png",GAME_WIDTH,GAME_HEIGHT-32,2);
//Get keyboard input :D
addKeyListener( new KeyAdapter() {
public void keyPressed(KeyEvent ke) {
handleInputPressed(ke);
}
public void keyReleased(KeyEvent ke) {
handleInputReleased(ke);
}
});
}
public void handleInputPressed(KeyEvent ke) {
int a = ke.getKeyCode();
switch(a) {
case KeyEvent.VK_LEFT:
bat.keyHandle(0);
test = 1;
break;
case KeyEvent.VK_RIGHT:
bat.keyHandle(2);
break;
}
}
public void handleInputReleased(KeyEvent ke) {
System.out.println("Key Pressed");
int a = ke.getKeyCode();
switch(a) {
case KeyEvent.VK_LEFT:
bat.keyHandle(1);
test = 0;
break;
case KeyEvent.VK_RIGHT:
bat.keyHandle(3);
break;
}
}
These are all the basic input handles. The test variable doesn't change when I push the Left arrow. What's wrong here...
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…