呈现java的最佳方式?

呈现java的最佳方式?,java,render,game-engine,Java,Render,Game Engine,我正在学习java游戏开发,我看了一些关于它的视频,到目前为止,我已经看到了两种渲染方式: 1-创建缓冲图像,每帧单独更改像素,然后绘制图像,例如通过将图像像素更改为颜色来绘制矩形 2-不用改变像素,只需使用图形方法在其他东西上绘制东西,并清洁画布上的每一帧,例如绘制一个矩形,只需使用图形。drawRect 那么,最好的方法是什么?每种方法的优缺点是什么?因为第二种方法似乎更简单。软件渲染仍然是一种选择 如果使用框架实现Runnable,则将绘制和重新绘制声明为{}并在运行内部循环中进行绘制会更

我正在学习java游戏开发,我看了一些关于它的视频,到目前为止,我已经看到了两种渲染方式:

1-创建缓冲图像,每帧单独更改像素,然后绘制图像,例如通过将图像像素更改为颜色来绘制矩形

2-不用改变像素,只需使用图形方法在其他东西上绘制东西,并清洁画布上的每一帧,例如绘制一个矩形,只需使用图形。drawRect


那么,最好的方法是什么?每种方法的优缺点是什么?因为第二种方法似乎更简单。

软件渲染仍然是一种选择

如果使用框架实现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游戏编程的书,你想构建什么样的游戏?是否没有游戏引擎可以满足您的需求?首先是速度较慢,但更灵活。第二个更容易使用,速度更快,但你有点有限。