我有一个动画的自定义Image实现。我想使用最少的内存和处理器时间来渲染和复制这个类的实例的多个副本。我该怎么办呢?只要我需要另一个或者有一些适当的或建议的方法来复制Image实例,它是否最容易重新创建它。我问这个是因为我找不到复制构造函数而且我不知道.clone()是否在Image中实现。
答案 0 :(得分:1)
如果您真的想要关注记忆,您可以为所有演员提供相同的图像。但是如果你以某种方式改变图像并且在其中一个Actors上它会在所有演员身上改变它(我用精灵做了它并改变了TextureRegion。我所有的怪物看着同一个方向)。但是如果您只是拥有相同的Image,那么您可以创建对象并为一个Image提供相同的引用。
例如这样:
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位演员带有图像副本,则其具有相同的渲染时间。
希望这会有所帮助。