Not sure why. My method runs multiple times and prints string "Fire !!!" It should only run, once after event occurred.
Player class
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()){
case KeyEvent.VK_SPACE:{
Missilies m = new Missilies(x,y);
//m.fire();
if(!m.isFired()) {
m.fire();
m.setFired(true);
}
public void keyReleased(KeyEvent e) {
switch (e.getKeyCode()){
case KeyEvent.VK_SPACE:{
m.setFired(false);
}
Missile class
public void fire(){
System.out.println("Fire !!!");
}
now this seems to work:
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()){
case KeyEvent.VK_SPACE:{
Missilies m = new Missilies(x,y);
if (lastKey == null || lastKey != e.getKeyChar()) {
lastKey = e.getKeyChar();
m.fire();
System.out.println("keyPressed: " + lastKey);
}