Java 2 ME GameCanvas - Как получить все события keyPressed? - PullRequest
0 голосов
/ 16 апреля 2011

Привет
Я пишу простой калькулятор j2me.используя GameCanvas класс в качестве основы моего интерфейса.Мне нужно обрабатывать как ключевые события цифровой клавиатуры, так и связанные с игрой события (такие как UP , DOWN , FIRE и т. Д.) Для перемещения моего курсора.Проблема в том, что ни эмулятор, ни мой Sony Ericsson не получают никаких событий от numpad и игр.Например, я получаю SOFT1 , SEND , 2 , 4 , ASTERISK события нажатия клавиши, но нене получите 1 , 3 , ВЛЕВО , ВПРАВО , ВВЕРХ , ВНИЗ , ОГОНЬ события.

class CalculatorCanvas extends GameCanvas
{
    public CalculatorCanvas() throws java.io.IOException
    {
        super(true);
        setFullScreenMode(true);

        cursor = new Sprite(Image.createImage("/cursor.png"));
    }

    public void paint(Graphics g)
    {
        g.setColor(0);
        g.fillRect(0, 0, getWidth(), getHeight());
        cursor.paint(g);
    }

    protected void keyPressed(int keyCode)
    {
        System.out.println("keyPressed: " + getKeyName(key));
        if (keyCode == getKeyCode(RIGHT))
            cursor.move(STEP, 0);
        if (key == getKeyCode(LEFT))
            cursor.move(-STEP, 0);
            /*...*/
        repaint();
    }

    private final int STEP = 3;
    private Sprite cursor;
}  

Как я могу получить все эти события?
Заранее спасибо

PS Я обнаружил, что Холст (базовый класс для GameCanvas ) повторяет все эти события, но я должен использовать GameCanvas

1 Ответ

2 голосов
/ 16 октября 2011

проверка javadoc для конструктора GameCanvas.Вы должны назвать это «ложь»!

...