0

我有一个动画的自定义实现。我想使用最少的内存和处理器时间来制作此类实例的多个副本以进行渲染和复制。我该怎么做?每当我需要另一个时,是否最容易重新创建它,或者是否有一些适当或建议的方法来复制 Image 实例。我问这个是因为我找不到复制构造函数,而且我不知道 .clone() 是否在 Image 中实现。

4

1 回答 1

1

如果你真的想照顾记忆,你可以给所有演员相同的图像。但是,如果您以某种方式更改图像并且在其中一个 Actor 上它确实会随着它改变所有 Actor(我使用精灵做了它并更改了 TextureRegion。我所有的怪物都看着同一个方向)。但是,如果您只是始终拥有相同的图像,您可以创建您的对象并对一个图像提供所有相同的引用。
例如像这样:

public ArrayList<Actor> generateImageActor(){
        ArrayList<Actor> temp = new ArrayList<Actor>();
        Image img = new Image(____);
        for(int i = 0; i <10; i++){
            MyActor act = new MyActor(img);
            temp.add(act);
        }
        return temp;
    }


如果您引用一个图像或始终使用新图像,则渲染时间不会产生任何影响。我只是拍了照片和它的偏移量然后画出来。因此,如果您在 10 个演员中使用 1 张图像,则它具有相同的渲染时间,否则如果您将有 10 个演员和图像的副本。
希望这可以帮助。

于 2013-04-20T11:40:36.457 回答