渲染java的最佳方法是什么?

时间:2015-07-11 15:14:00

标签: java render game-engine

我正在使用java进行游戏开发,我正在观看有关它的视频,到目前为止,我已经看到了两种渲染方式:

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

2 - 不是改变像素而只是使用图形方法在其他东西上绘制东西,并且每帧清理画布(例如绘制矩形只需使用graphics.drawRect(...)

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

1 个答案:

答案 0 :(得分:0)

软件渲染仍然是一种选择。

如果使用Frame实现Runnable,将paint()和repaint()声明为{}会更快,并在run()内的循环中进行绘制。

例如......

 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();
  }
 }