Java 缓冲区策略图形或整数数组
在 Java 中进行 2D 游戏开发时,大多数教程都会创建要渲染的缓冲区策略。这是非常有道理的。但是,人们似乎偏向的地方是将实际图形绘制到缓冲区的方法。
某些教程会创建一个缓冲图像,然后创建一个整数数组来表示各个像素颜色。
private BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
private int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
Graphics g = bs.getDrawGraphics();
g.setColor(new Color(0x556B2F));
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
但是,其他一些教程不会创建缓冲图像,而是将像素绘制到 int 数组,而是使用 BufferStrategy 的图形组件将其图像直接绘制到缓冲区。
Graphics g = bs.getDrawGraphics();
g.setColor(new Color(0x556B2F));
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(testImage.image, x*128, y*128, 128, 128, null);
我只是想知道,为什么要创建整个int数组,然后绘制它。这需要在实现矩形,拉伸,透明度等方面做更多的工作。缓冲区策略的图形组件已经具有可以轻松调用的方法。使用 int 数组是否有一些巨大的性能提升?
我已经查了几个小时,我看到的所有网站都只是解释了他们在做什么,而不是为什么他们选择这样做。