呈现java的最佳方式?
我正在学习java游戏开发,我看了一些关于它的视频,到目前为止,我已经看到了两种渲染方式: 1-创建缓冲图像,每帧单独更改像素,然后绘制图像,例如通过将图像像素更改为颜色来绘制矩形 2-不用改变像素,只需使用图形方法在其他东西上绘制东西,并清洁画布上的每一帧,例如绘制一个矩形,只需使用图形。drawRect呈现java的最佳方式?,java,render,game-engine,Java,Render,Game Engine,我正在学习java游戏开发,我看了一些关于它的视频,到目前为止,我已经看到了两种渲染方式: 1-创建缓冲图像,每帧单独更改像素,然后绘制图像,例如通过将图像像素更改为颜色来绘制矩形 2-不用改变像素,只需使用图形方法在其他东西上绘制东西,并清洁画布上的每一帧,例如绘制一个矩形,只需使用图形。drawRect 那么,最好的方法是什么?每种方法的优缺点是什么?因为第二种方法似乎更简单。软件渲染仍然是一种选择 如果使用框架实现Runnable,则将绘制和重新绘制声明为{}并在运行内部循环中进行绘制会更
那么,最好的方法是什么?每种方法的优缺点是什么?因为第二种方法似乎更简单。软件渲染仍然是一种选择 如果使用框架实现Runnable,则将绘制和重新绘制声明为{}并在运行内部循环中进行绘制会更快 例如
private static MemoryImageSource imgSrc;
private static DirectColorModel imgCm = new DirectColorModel(32,0xff0000,0xff00,0xff);
private static Image img;
private static int xsize = 256;
private static int ysize = 256;
private static int pixels[];
private static int appLeft = 0;
private static int appTop = 0;
private static void init() { // initialize
imgSrc = new MemoryImageSource(xsize, ysize, pixels, 0, xsize);
img = createImage(imgSrc);
imgSrc.setAnimated(true);
imgSrc.newPixels(pixels, imgCm, 0, xsize);
appLeft = getInsets().left;
appTop = getInsets().top;
}
public void run() {
Graphics g;
for(;;) {
// .... render something here
// then...
g = getGraphics();
imgSrc.newPixels(); // NOTE: renders array to image
g.drawImage(scr, appLeft, appTop, this);
g.dispose();
}
}
第二种方法中使用的方法是第一种方法。此外,我建议使用现有的渲染器。如果你真的喜欢编写自己的渲染器,我建议你开始编写C/C++代码,看看openGL是如何工作的。Java不是最适合图形的,但你可能已经知道了。也许你也可以看一本关于Java游戏编程的书,你想构建什么样的游戏?是否没有游戏引擎可以满足您的需求?首先是速度较慢,但更灵活。第二个更容易使用,速度更快,但你有点有限。