LibGDX - 动态改变粒子发射器的Atlas区域?

时间:2014-03-30 02:31:03

标签: libgdx particles

是否可以动态更改粒子发射器使用的Atlas区域?

我试过......

effect.getEmitters().get(0).setImagePath("[someAtlasRegionName]");

...但它继续使用加载效果的原始区域。

似乎有.setSprite(Sprite)方法,但它不适用于TextureAtlas。

感谢。

1 个答案:

答案 0 :(得分:2)

修改Sprite的字段以将其设置为TextureRegion有效(Sprite扩展TextureRegion,因此它包含所有相关字段):

Sprite s = effect.getEmitters().get(0).getSprite();
s.setTexture(vessel.getTexture());
s.setU (someAtlasRegion.getU());
s.setU2(someAtlasRegion.getU2());
s.setV (someAtlasRegion.getV());
s.setV2(someAtlasRegion.getV2());
effect.getEmitters.get(0).setImagePath(someRegionName);

编辑:我不知道ParticleEmitter.setImagePath()是否重要,但我会将其包括在内以防万一 - 这肯定不会受到伤害。所以我也补充说。