您的位置:首页 > 编程语言 > Java开发

Java游戏开发之一

2007-05-19 11:46 323 查看
用Java开发MMOPG游戏是一个挑战, 接下来的这个系列我将结合最近正在开发的一款网络游戏,写一些游戏开发方面的技巧。

使用Java开发游戏除了了解基本的类库,还要了解供游戏使用的多种API:

首当其冲的是全屏切换API:GraphicsDevice .setDisplayMode(DisplayMode dm)和GraphicsDevice .setFullScreenWindow(Window w),具体的使用可以参考Java教程:FullScreen

还要了解可以操作显卡内存的API,不过Java提供了很好的抽象,隐藏了底层的实现细节:Window.
createBufferStrategy(int)
,Window.
getBufferStrategy()
,Frame是Window的子类,可以直接使用相关的方法,还有Canvas.
createBufferStrategy(int)
,Canvas.
getBufferStrategy()
等。

使用Java的这些API有很多技巧,下边是我们项目中的一段例子代码:

private void show() {
if(fullScreen) {
if(fullScreenFrame == null) {
fullScreenFrame = createFrame(fullScreen);
}
device.setFullScreenWindow(fullScreenFrame);
changeDisplayMode(displayMode);
fullScreenFrame.createBufferStrategy(2);
bs = fullScreenFrame.getBufferStrategy();
} else {
if(normalFrame == null) {
normalFrame = createFrame(fullScreen);
}
normalFrame.pack();
normalFrame.setLocationRelativeTo(null);
normalFrame.setVisible(true);
canvas.requestFocus();
canvas.createBufferStrategy(2);
bs = canvas.getBufferStrategy();
}
}

上边这段代码创建适应全屏或者窗口模式的硬件加速对象BufferStrategy.

Graphics g = bs.getDrawGraphics();
try {
render((Graphics2D)g);
if(bs.contentsLost()) {
Thread.yield();
}
} finally {
g.dispose();
}
bs.show();

上边这段代码得到硬件加速的Graphics,将游戏中的Sprite进行绘制后通过调用show方法显示到屏幕上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: