Pergunta

Is it possible to dynamically change the Atlas Region used by a particle emitter?

I've tried...

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

...but it continues to use the original region the effect was loaded with.

There appears to be a .setSprite(Sprite) method but it doesn't work with TextureAtlas.

Thanks.

Foi útil?

Solução

Editing the Sprite's fields to set it to the TextureRegion works (Sprite extends TextureRegion, so it has all the relevant fields):

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);

Edit: I don't know if ParticleEmitter.setImagePath() matters or not, but I'd include that as well just in case - it definitely won't hurt. So I added that as well.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top