0

您好
,我正在编写简单的 j2me 计算器。使用GameCanvas类作为我的界面的基础。我需要同时处理数字键盘按键事件和与游戏相关的事件(例如UPDOWNFIRE等)来移动我的光标。问题是模拟器和我的索尼爱立信都没有收到一些数字键盘和游戏相关的事件。例如,我得到SOFT1SEND24ASTERISK按键事件,但没有收到13LEFTRIGHUPDOWN火灾事件。

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我发现CanvasGameCanvas的基类)reseives所有这些事件,但我必须使用GameCanvas

4

1 回答 1

2

检查 javadoc 的 GameCanvas 构造函数。你应该用“假”来称呼它!

于 2011-10-16T09:45:17.713 回答