我有一些代码可以在随机位置生成粒子,并以随机方向和速度移动。
通过循环的每次迭代,我移动所有粒子,并在我的 jpanel 上调用 repaint。
对于 1,000 个粒子,我每秒的速度大约为 20 到 30 帧。我计划最终拥有 100,000 到 1,000,000 个粒子。
在绘画中,如果窗口大小改变,我只会创建一个新的缓冲图像。我将像素绘制到缓冲图像,然后调用 drawImage 来显示图像。
每个粒子都是一个像素,我已经确定所有时间都在实际绘制像素上。因此,增加粒子数量将大大降低帧速率。
我试过 g.drawline(x,y,x+1,y), img.setRGB(x,y,color),通过调用 img.getRaster().getDataBuffer().getData() 得到一个像素数组,然后设置 pixelData[y*width+x] = color.
通过这些不同的像素绘制方式,我在帧速率上只得到了很小的差异。
这是我的问题:绘制像素的最快方法是什么?缓冲图像甚至是要走的路吗?
谢谢。