我正在嘗試在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