gpt4 book ai didi

java - 如何在 J2ME 中使用 GameCanvas 来使用 keyPressed 事件?

转载 作者:太空宇宙 更新时间:2023-11-04 08:26:11 26 4
gpt4 key购买 nike

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

所以我首先尝试了这个:

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。您必须覆盖 keyReleased当用户松开按键而不是按下按键时执行操作的方法。

关于java - 如何在 J2ME 中使用 GameCanvas 来使用 keyPressed 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8464741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com