1

在使用TextureAtlas通过createSprite方法创建Sprite时,LibGDX文档中说:该方法使用字符串比较来查找区域并构造新的sprite,所以应该缓存结果而不是多次调用该方法。

如何缓存这些结果?它只是我创建的一个变量来存储创建的精灵吗?如果是这样,那么我如何创建同一个精灵的不同副本?

4

1 回答 1

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的精灵TextureAtlas,这将产生良好的性能,因为在渲染青蛙时,显卡上不会有很多纹理切换。

于 2014-05-12T07:21:12.350 回答