我正在制作Java游戏,当我绘制图形时游戏会滞后很多.
我目前绘制图形的方式是制作一个BufferedImage,从中获取Graphics2D,然后执行很多操作:
g2d.drawImage(loadedImages.getImage(),x,y,null);
将所有图像打印到BufferedImage之后,将BufferedImage绘制到屏幕上.
我在BufferedImage上绘制了很多图像.有没有更好的方法可以加快绘画时间呢?
我对图形和图形卡了解不多.我应该使用图形卡吗?我应该直接在屏幕上绘画吗?我应该使用与drawImage()完全不同的东西吗?
解决方法:
如果要绘制合理数量的图像,性能应该会很好.
确保每次绘制到屏幕时都没有创建新的BufferedImages.例如,您可能有一个Resources singleton,在其中您可以管理所有图像,以便仅加载和卸载每个图像一次.
如果您确实想要更高的性能,则需要使用OpenGL.请参阅LWJGL、libgdx或JOGL.您可能还想考虑2D图形库,例如Slick.