【发布时间】:2016-11-16 18:41:21
【问题描述】:
我正在尝试用 Java 制作游戏,并且正在使用 LWJGL。因此,我可以使用箭头键在屏幕上移动四边形,效果非常好。虽然代码在Main 构造函数中,它可以工作,但看起来不太好。所以我决定把它放在一个方法中,并在Main构造函数中调用该方法,以节省构造函数中的一些空间。但是,当我将代码放入方法中并调用它时,该函数不起作用。当我按箭头键时,立方体不会移动。
这是我的 move 方法(在主构造函数中调用时不执行任何操作):
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();
}
【问题讨论】: