我正在显示图像Swing
。我在图像(一堆drawRect()
调用)上绘图并刷新屏幕。图像是恒定的,但在顶部绘制的对象不是。有什么办法可以避免随时重绘图像吗?既然图形卡可能会显示图像,那么假设drawRect()
调用是瓶颈是否安全?我每帧绘制多达 20,000 个调用(但通常不超过 3000 个)。
编辑:确实是 rect 调用减慢了它的速度,并且可以通过删除透明度通道来加快速度。话虽如此,加快速度并包括透明度仍然会很好。代码不能真正变得更简单,所以我希望通过做一些不同的事情会有所帮助。
public void paintComponent(Graphics g) {
super.paintComponent(g) ;
//grid or walkers
g.drawImage(image, 0, 0, null);
for(Walker w : walkArray){
g.setColor(new Color(255,255-w.data[3], 0, w.data[2]));
g.drawRect(w.data[0], w.data[1], 1, 1);
}
}