Java 2 ME GameCanvas —如何接收所有keyPressed事件?
|
你好
我正在编写简单的j2me计算器。使用GameCanvas类作为我的界面的基础。我需要同时处理小键盘按键事件和与游戏相关的事件(例如UP,DOWN,FIRE等),才能移动光标。问题是模拟器和我的索尼爱立信都没有收到一些小键盘和游戏相关的事件。例如,我收到SOFT1,SEND,2、4,ASTERISK键按下事件,但没有收到1、3,LEFT,RIGH,UP,DOWN,FIRE事件。
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我发现Canvas(GameCanvas的基类)可以重播所有这些事件,但是我必须使用GameCanvas
没有找到相关结果
已邀请:
1 个回复
梦话快家腹