基本的に、私がやろうとしているのは、LWJGL を使用して、プレーヤーをゲーム内で動かすことです。プレイヤーは現在動いていますが、ボタンを押している間は動き続けません..
public void update(){ while(Keyboard.next()){
if(Keyboard.getEventKey() == Keyboard.KEY_RIGHT) {
if(Keyboard.getEventKeyState()){
System.out.println("KEY DOWN!");
player.playerMovingRight();
}
else{
System.out.println("KEY RELEASED!");
}
}
}
while(Keyboard.getEventKeyState()) を使用してみましたが、ゲームがクラッシュするだけで、キーを離しても認識されません。
では、キーをすばやく押して移動するのではなく、ボタンを押したままにすると、プレーヤーを動かし続けるにはどうすればよいでしょうか。また、プレーヤーが同時に 2 つのボタンを押している場合、どのように機能させることができますか?
更新されたコード:
public void update(){
while(Keyboard.next()){
//If key escape is down we shut the application down
if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)){
System.exit(0);
}
//If key up was pressed move up
else if(Keyboard.getEventKey() == Keyboard.KEY_UP) {
if(Keyboard.getEventKeyState()){
System.out.println("KEY DOWN!");
moveUp = true;
}
else{
System.out.println("KEY RELEASED!");
moveUp = false;
}
}
//If key down was pressed move down
else if(Keyboard.getEventKey() == Keyboard.KEY_DOWN) {
if(Keyboard.getEventKeyState()){
System.out.println("KEY DOWN!");
moveDown = true;
}
else{
System.out.println("KEY RELEASED!");
moveDown = false;
}
}
if(moveUp == true){
player.playerMovingUp();
}
if(moveDown == true){
player.playerMovingDown();
}
}
私はまだコードに同じ問題を抱えています.ボタンを押し続けることができず、プレーヤーがまだ動くのを妨げている Keyboard.next() と考え始めています。