有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何预渲染平铺贴图,以便以后重新绘制?

我正在编写一个Android应用程序。我使用画布,在上面绘制一个瓷砖贴图,使用for循环,一个接一个地绘制每个瓷砖

我想通过渲染这个tilemap(前景和背景单独)一次并保存它来提高性能,这样我就能够绘制整个贴图,而不必循环每个瓷砖

我的图形课是这样的:

public class AGraphics implements Graphics {
    Bitmap frameBuffer;
    Canvas canvas;
    Paint paint;
    ...

    public AGraphics(.., Bitmap frameBuffer) {
        this.frameBuffer = frameBuffer;
        this.canvas = new Canvas(frameBuffer);
        this.paint = new Paint();

    }

    ...
    public void drawPixmap(...){
        canvas.drawBitmap(((AndroidPixmap) pixmap).bitmap, ... );
    }

    ...

}

我的世界级调用draw Pixmap函数来绘制每个瓷砖:

public class World {
    ...
    public void drawForeground (float posX, float posY){
        // get Graphics ...
        for (int y = 0; y < map.height; y++) {
            for (int x = 0; x <map.width; x ++) {
                // calculate Positions
                g.draw(tileset, (int)posX, (int)posY, srcX, srcY, tilesize, tilesize);
            }
        }
    }
    ...
}

现在我正在寻找一种方法来保存画布,并在每个游戏循环的不同位置重新绘制,以提高性能

有什么想法或最佳实践吗?如果你需要更多信息,请询问

谢谢


共 (0) 个答案