在使用TextureAtlas通过createSprite方法创建Sprite时,LibGDX文档中说:该方法使用字符串比较来查找区域并构造新的sprite,所以应该缓存结果而不是多次调用该方法。
如何缓存这些结果?它只是我创建的一个变量来存储创建的精灵吗?如果是这样,那么我如何创建同一个精灵的不同副本?
在使用TextureAtlas通过createSprite方法创建Sprite时,LibGDX文档中说:该方法使用字符串比较来查找区域并构造新的sprite,所以应该缓存结果而不是多次调用该方法。
如何缓存这些结果?它只是我创建的一个变量来存储创建的精灵吗?如果是这样,那么我如何创建同一个精灵的不同副本?
每次使用该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
的精灵TextureAtlas
,这将产生良好的性能,因为在渲染青蛙时,显卡上不会有很多纹理切换。