当使用TextureAtlas使用createSprite方法创建Sprite时,LibGDX文档说:此方法使用字符串比较来查找区域并构造新的sprite,因此应该缓存结果而不是多次调用此方法。
如何缓存这些结果?它只是我创建的变量来存储创建的精灵吗?如果是,那么如何创建相同精灵的不同副本?
答案 0 :(得分:2)
每次使用createSprite
方法时,都会创建一个新的Sprite
。例如,通常你每个敌人都有一个精灵。让我们说你有一个班级Frog
,这是你的敌人之一。它应该看起来像这样(伪代码):
public class Frog {
private Sprite sprite;
public Frog(TextureAtlas atlas) {
sprite = atlas.createSprite("frog");
}
public void update(float deltaTime) {
// update the sprite position
}
public void render(Batch batch) {
sprite.draw(batch);
}
}
现在每个Frog
都有自己的Sprite
。这是必要的,因为所有的青蛙都可以在不同的地方。该职位将通过Sprite
进行配置。您将在构造函数中仅创建一次精灵,并且所有这些精灵共享相同TextureRegion
的{{1}},这将产生良好的性能,因为不会有很多纹理当你渲染你的青蛙时,打开图形卡。