// Check user input and update positions if necessary
int keyState = getKeyStates();
if ((keyState & LEFT_PRESSED) != 0) {
sprite.move(-1, 0);
}
else if ((keyState & RIGHT_PRESSED) != 0) {
sprite.move(1, 0);
}
если из этой же маски брать соответственно вверх и влево получим диагональ
GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED и GAME_D_PRESSED обычно проецируются на 1,3,7,9 с помощью getGameAction(int keyCode) как и джойстик на 2, 8, 4, 6
кроме keyPressed() есть еще события:
keyRepeated()
keyReleased()
для длительного нажатия и соответственно по таймеру вдойного и тройного!