私はJavaでゲームを作ろうとしていて、私はLWJGLを使っています。だから私は十字キーを使って画面の周りにクワッドを移動することができ、それは非常にうまく動作します。そのコードはMain
のコンストラクタにありますが、うまくいきません。だから私はメソッドに入れて、コンストラクタのスペースを節約するためにMain
コンストラクタ内のメソッドを呼び出すことにしました。しかし、メソッドにコードを入れて呼び出すと、関数は機能しません。矢印キーを押すとキューブは動かない。キーボード入力のLWJGLメソッドがゲームループで機能しない
これは、(メインコンストラクタで呼び出されたときに何もしない)私の移動方法であって、ここで
public static void moveSquare(float x, float y, float speed, int deltaTime){
if(Keyboard.isKeyDown(Keyboard.KEY_RIGHT)){
x += speed * deltaTime;
}
if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)){
x -= speed * deltaTime;
}
if(Keyboard.isKeyDown(Keyboard.KEY_UP)){
y -= speed * deltaTime;
}
if(Keyboard.isKeyDown(Keyboard.KEY_DOWN)){
y += speed * deltaTime;
}
は、ゲームがあるループ私のメインのコンストラクタです。私が持っているいくつかのインスタンスは、float x、float y、float speed、int width、およびint heightです。あなたがコードで参照されているのを見て、どこから来たのか疑問に思っている場合に備えて。
public Main(){
Display.setTitle("Squares!");
try {
Display.setDisplayMode(new DisplayMode(800,600));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
}
initGL();
while(!Display.isCloseRequested()){
int deltaTime = getDelta();
drawSquare(x, y, width, height);
moveSquare(x, y, speed, deltaTime);
initClock();
Display.update();
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
Display.sync(64);
}
Display.destroy();
}
ありがとうございました。 @eldo –
私は助けることができてうれしいです。アンゲル・ガルシア – eldo