我对一些班级组织有一点困境(我一直不擅长)。我有一个使用 LWJGL 库在 Java 中构建的乒乓球游戏。到目前为止,我已经上了三个班。我有一个 Startup 类,一个一切都开始的类(这显示窗口),一个 InputHandler(处理来自用户的输入的类)和一个 Player 类。我想要播放器移动方法,moveUp()
并moveDown()
进入播放器类。这些方法由InputHandler
接受向上箭头和向下箭头输入并根据输入移动播放器块的类。一个问题。我在播放器块的哪里写?我会在启动时写它,所以它可以显示在屏幕上吗?我会把它写到 Player 类中吗?或者我什至会将它写入 InputHandler 类,以便可以通过键盘移动来控制它?我将在下面发布所有三个课程。他们都很短。请随时指出我可能没有发现的任何其他缺陷。我对 Java 很陌生,对 LWJGL 也很陌生。
启动类:
public class Startup {
// set up display
public void start() {
try {
Display.setDisplayMode(new DisplayMode(600, 400)); // these numbers pending
Display.setTitle("Evan's Pong!");
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}
while (!Display.isCloseRequested()) {
// render OpenGL here
handler.handleInput();
Display.update();
Display.sync(60);
}
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 600, 4, 0, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
Display.destroy();
}
// Let's start this beyotch up!
InputHandler handler = new InputHandler();
public static void main(String[] args) {
new Startup().start();
}
}
输入处理器:
public class InputHandler {
/*
* create a new player object. This is for the player's paddle that will
* move up and down to block the ball
*/
Player player = new Player();
// testing input for now!
public void handleInput() {
if (Keyboard.isKeyDown(Keyboard.KEY_UP)) {
// System.out.println("going up.");
player.moveUp();
}
if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) {
// System.out.println("going down");
player.moveDown();
}
}
}
球员等级:
public class Player {
private int moveSpeed = 10; // mph
public void moveUp() {
// move up
}
public void moveDown() {
// move down
}
}