我正在使用Java,swing和Java2D进行迷宫生成的项目.我是Java2D的新手,所以如果这个问题是新手,请原谅.
基本上,我有一个成功生成的迷宫.我希望在已设置并正确覆盖PaintComponent的自定义JPanel上绘制此迷宫.我现在遇到的问题是我目前有能力绘制迷宫,但是每次重新绘制时,迷宫都会消失.我已通过在每次调用repaint()时重新绘制迷宫来解决此问题,但这似乎效率极低.由于迷宫没有改变,为什么我必须重绘它?
所以我的问题是:有没有办法“缓存”迷宫的图形,这样我就不必浪费时间重新绘制它了?我可以看到每次都会重新绘制它,因为异常大的迷宫是减速的主要来源.
谢谢!
解决方法:
将迷宫绘制到BufferedImage.然后在您的paintComponent()方法中仅绘制BufferedImage.摆动将确定是否需要重新粉刷整个迷宫或迷宫的一部分.
有关在BufferedImage上绘画的示例,请参见Custom Painting Approaches的DrawOnImage示例.