Soy un programador autodidacta, por lo que no sé las formas adecuadas de hacer las cosas. He creado juegos simples como asteroides y serpientes, pero en esos juegos, puedes modificar fácilmente las variables dentro de las funciones de keyevent. Así es como lo hice en mi sencillo juego de Asteroides:
/*
* 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;
}
}
Si tuviera que hacer un juego más avanzado (con un menú principal, opciones, juego principal, etc.), ¿cómo debería hacer la entrada de la tecla / mouse?
Además, si tuviera que entrar en un solo jugador, ¿debería poner todo el código de juego en una clase? ¿Hay alguna manera de poner el código de un jugador en una clase separada y de alguna manera hacer que la entrada clave modifique las variables y demás?