Sou um programador autodidata, por isso não conheço as maneiras adequadas de fazer as coisas. Eu criei jogos simples como asteróides e cobra, mas nesses jogos, você pode modificar facilmente as variáveis nas funções do evento principal. Aqui está como eu fiz isso no meu jogo simples de Asteróides:
/*
* key listener events
*/
public void keyReleased(KeyEvent k){
int keyCode = k.getKeyCode();
switch(keyCode){
case KeyEvent.VK_LEFT:
turnLeft = false;
break;
case KeyEvent.VK_RIGHT:
turnRight = false;
break;
case KeyEvent.VK_UP:
accel = false;
break;
case KeyEvent.VK_1:
cls = true;
break;
case KeyEvent.VK_ENTER:
break;
case KeyEvent.VK_SPACE:
fire = false;
}
}
public void keyTyped(KeyEvent K){}
public void keyPressed(KeyEvent k){
int keyCode = k.getKeyCode();
switch(keyCode){
case KeyEvent.VK_LEFT:
turnLeft = true;
break;
case KeyEvent.VK_RIGHT:
turnRight = true;
break;
case KeyEvent.VK_UP:
accel = true;
break;
case KeyEvent.VK_1:
cls = false;
break;
case KeyEvent.VK_ENTER:
clearAllBullets();
break;
case KeyEvent.VK_SPACE:
fire = true;
}
}
Se eu fosse fazer um jogo mais avançado (com um menu principal, opções, jogo principal etc.), como devo fazer a entrada de tecla / mouse?
Além disso, se eu for para o modo single-player, devo colocar todo o código de jogo em uma classe? Existe uma maneira de colocar o código de jogador único em uma classe separada e, de alguma forma, a entrada de chave ainda modificar as variáveis e tal?