Java 如何在J2ME中使用GameCanvas使用按键事件?

Java 如何在J2ME中使用GameCanvas使用按键事件?,java,java-me,midp,lcdui,Java,Java Me,Midp,Lcdui,嗯,我有一个我无法解决的问题,我尝试了很多方法,但都没有成功。我想按下一个按钮,如果它不动,子弹就不能发射 所以我试了一下,首先: public void checkInput() { int iKeyPressed; iKeyPressed = this.getKeyStates(); if((iKeyPressed & LEFT_PRESSED) != 0) { this.player.moveLeft(); } else

嗯,我有一个我无法解决的问题,我尝试了很多方法,但都没有成功。我想按下一个按钮,如果它不动,子弹就不能发射

所以我试了一下,首先:

public void checkInput() {
    int iKeyPressed;

    iKeyPressed = this.getKeyStates();

    if((iKeyPressed & LEFT_PRESSED) != 0) {
        this.player.moveLeft();
    }
    else if((iKeyPressed & RIGHT_PRESSED) != 0) {
        this.player.moveRight();
    }

    if((iKeyPressed & FIRE_PRESSED) != 0 && this.bKeyReleased) {
        Bullet bullet;
        int x;
        int y;

        bullet = new Bullet(loadImage("bullet.png"), 4, 22, 1, (this.player.getVel()*2)*(-1));
        x = (this.player.getX()+(this.player.getWidth()/2))-(bullet.getWidth()/2);
        y = this.player.getY();
        bullet.setPosition(x, y);
        this.lstBullets.addElement(bullet);
        //this.bKeyReleased = false;
    }
}
我在主循环中调用这个方法。这是可行的,但如果钥匙不动,子弹还是会出来。当我试图重写keyPressed方法时,它不起作用,因为我不知道如何调用这个方法。如果我试图在主循环中直接调用它,它将不起作用,那么,我如何才能使它起作用呢


任何人都可以告诉我如何调用此方法以正确工作?

getKeyStates()本身不报告事件。如果在当前调用getKeyStates和最后一次调用它之间的某个时间点按住或按下某个键,则该键将返回true。当用户向上而不是向下按键时,您必须重写该方法才能采取操作。

getKeyStates()本身不报告事件。如果在当前调用getKeyStates和最后一次调用它之间的某个时间点按住或按下某个键,则该键将返回true。当用户向上而不是向下按键时,您必须重写该方法才能采取行动。

您传递给的参数值是多少?根据您的描述,感觉您将其设置为
true
——这将抑制游戏按键的按键功能。尝试设置此参数
false
并重新测试您用按键按下/释放尝试的代码传递给的参数值是什么?根据您的描述,感觉您将其设置为
true
——这将抑制游戏按键的按键功能。尝试设置此参数
false
,然后重新测试您在按下/释放键时尝试的代码