我Canvas
从java.awt
包中添加了一个JFrame
. 使用Canvas
双缓冲绘制,启用canvas.createBufferStrategy(2)
.
这是我的render()
方法,应该很快,因为我画的不多:
Graphics g = strategy.getDrawGraphics();
// draw
g.drawImage(...); // Image with a size of 1000x1000
g.drawString(...); // Drawing a short String with the Frames per Second
drawModel(g); // this method draws a rotated game character with the
// help of Gaphics2D (Imagesize: 100x100)
g.dispose();
strategy.show();
我在 System.currentTimeMillis() 的帮助下测量了性能,并得到了结果(每帧时间):
- 9ms
- 9ms
- 11ms
- 10ms
- 0ms
- 21毫秒
- 10ms
一个渲染过程需要 0 毫秒,而下一个渲染过程是平均时间的两倍,这怎么会发生?您对提高整体渲染性能有何建议?
// 更新
我JPanel
现在尝试过:它是喇叭形的,而且比 Canvas 慢得多。