gpt4 book ai didi

java - LibGdx 复制 Actor 的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-01 14:39:32 24 4
gpt4 key购买 nike

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

最佳答案

如果你真的想关心内存,你可以给所有 Actor 相同的图像。但是,如果您以某种方式更改图像,并且在其中一个 Actor 处,它确实会在所有 Actor 处发生变化(我用 Sprite 做了它并更改了纹理区域。我所有的怪物都看着同一个方向)。但是,如果您始终只拥有相同的图像,则可以创建对象并对一个图像提供所有相同的引用。
例如这样:

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;
}


如果您引用一张图像或始终引用一张新图像,则渲染时间不会产生任何影响。我只是简单地拍摄照片及其偏移并绘制它。因此,如果您将 1 个图像引用为 10 个 Actor ,则它具有相同的渲染时间,否则如果您有 10 个 Actor 并拥有该图像的副本。
希望这会有所帮助。

关于java - LibGdx 复制 Actor 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16119522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com