Problema capturar eventos teclado: key pressed, getKeyStates em um jogo de penalty

Olá.
Estou fazendo um jogo de penalty como trabalho na faculdade e estou com problemas para capturar eventos do teclado.
Olhem a situação. Do ponto de vista do keyPressed:
utilizei ele, consegui capturar os eventos do teclado só que ele não consegue ler todas as teclas do teclado numérico, não consegue ler:1,3,7 e 9 isso é normal do keyPressed ?

Segundo olhem abaixo o meu código onde utilizo getKeyStates:
public void capturaAcao() {
int keyStates = getKeyStates();
if ((keyStates & KEY_NUM1) != 0) {
jogo.setCanto(1);
captureiIO = true;
} else if ((keyStates & KEY_NUM2) != 0) {
jogo.setCanto(2);
captureiIO = true;
} else if ((keyStates & KEY_NUM3) != 0) {
jogo.setCanto(3);
captureiIO = true;
} else if ((keyStates & KEY_NUM4) != 0) {
jogo.setCanto(4);
captureiIO = true;
} else if ((keyStates & KEY_NUM5) != 0) {
jogo.setCanto(5);
captureiIO = true;
} else if ((keyStates & KEY_NUM6) != 0) {
jogo.setCanto(6);
captureiIO = true;
} else if ((keyStates & KEY_NUM7) != 0) {
jogo.setCanto(7);
captureiIO = true;
} else if ((keyStates & KEY_NUM8) != 0) {
captureiIO = true;
} else if ((keyStates & KEY_NUM9) != 0) {
jogo.setCanto(9);
captureiIO = true;
}
//depois de capturar a entrada está apto a correr
isRunning = true;
}

onde o método setCanto, set o canto onde o jogador vai bater ou defender o penalti
esse método é chamado assim

captureiIo = false;

if (!captureiIO) {//serve para executar até ter conseguido capturar as instruções
capturaAcao
}
else if (captureiIO)
//atualiza a lógica do jogo
//joga na tela
//espera uns segundos
//e no final seta captureiIO como false

Gostaria de saber qls os erros que olhando assim vcs acham que contém nesse código ?

alguém ?

bem dificil essa sua duvida… formata o codigo pelo menos.

vou olhar aqui com calma e te falo qualquer coisa, blz?

:wink:

Como é a definição de “getKeyStates”? Não é coisa da API (procurei em http://java.sun.com/javase/6/docs/api/index-files/index-7.html e não achei nenhum “getKeyStates”).

boa noite,
eu estou com esse problema também, conseguisse resolver mago?
alguém sabe?
não consigo usar o teclado numerico.
Estou tentado implementar os métodos keypressed da canvas, só não funciona

protected void keyPressed(int keyCode) {
		// TODO Auto-generated method stub
		//super.keyPressed(keyCode);
		
		System.out.println("pressed");
		if ((keyCode ==getKeyCode(KEY_NUM1))) {
			System.out.println("A" + carta1.getFrame());
			carta1.setPosition(60, 50);
			carta1.setTransform(7);
			flushGraphics();
			layerManager.paint(g, 0, 15);
		}
	}

pelo que eu estou vendo depedendo do device funciona as teclas 1,3, o mais seguro é utilizar as teclas
4,5,6 nos aparelhos que teste funciona essas.



protected void keyPressed(int keyCode) {
		// TODO Auto-generated method stub
		// super.keyPressed(keyCode);

		System.out.println("pressed" + keyCode);
		if ((keyCode == 52)) {
			System.out.println("4");
			
		}else{
			if ((keyCode == 53)) {
				System.out.println("5");
				
			}else{
				if ((keyCode == 54)) {
					System.out.println("6");
					
				}
			}
		}
	}