可以libgdx粒子特效使用纹理区域?(Can libgdx Particle Effects us

2019-10-19 15:32发布

我有我所有的图像在一个单一的纹理libgdx项目。

我要补充一些不错的粒子效果,但文档意味着每个类型的发射器,需要进行微粒单独的图形文件。

真的吗? 或者,有没有被用作粒子图像确定纹理的区域的方式,让我仍然可以保持所有我的图片在单独的文件?

Answer 1:

是的,可以,但你需要有一个内部的质地TextureAtlas 。 看看这篇文章吧。

下面是一个例子,其中i甚至使用一个TextureAtlas:

m_effect = new ParticleEffect();
m_effect.load(Gdx.files.internal("particle/effects/lightning.p"), this.getAtlas());

或在2个步骤:

m_effect.loadEmitters(Gdx.files.internal("particle/effects/lightning.p"));
m_effect.loadEmitterImages(this.getAtlas());

这里是热点问题研究,他LoadEmitterImage不:

public void loadEmitterImages (TextureAtlas atlas) {
    for (int i = 0, n = emitters.size; i < n; i++) {
        ParticleEmitter emitter = emitters.get(i);
        String imagePath = emitter.getImagePath();
        if (imagePath == null) continue;
        String imageName = new File(imagePath.replace('\\', '/')).getName();
        int lastDotIndex = imageName.lastIndexOf('.');
        if (lastDotIndex != -1) imageName = imageName.substring(0, lastDotIndex);
        Sprite sprite = atlas.createSprite(imageName); /// <---- here it creates a Sprite with a textureregion
        if (sprite == null) throw new IllegalArgumentException("SpriteSheet missing image: " + imageName);
        emitter.setSprite(sprite);
    }
}

从混帐SRC



文章来源: Can libgdx Particle Effects use texture regions?