水平翻转(X)一个ParticleEffect [Libgdx]

时间:2016-08-11 23:20:33

标签: java libgdx particles

我得到了一个粒子效果,它在一个组内

 shellParticle = new ParticleEffect();
    shellParticle.load(Gdx.files.internal("shell13"),Gdx.files.internal(""));
    shellParticle.getEmitters().first().setPosition(0,0);
    shellParticle.scaleEffect(0.3f);

我需要它水平翻转但它只是jav函数flipYsetFlip(bool X, bool Y)

  

setFlip(true,false)什么都不做。

flipY()实际上是垂直翻转它。  另外我不能减去它自己的宽度* 2,因为它没有......

2 个答案:

答案 0 :(得分:1)

将负标度设置为粒子

    shellParticle.scaleEffect(-1f);

然后垂直翻转

    shellParticle.flipY();

答案 1 :(得分:0)

这似乎是libgx api的一部分缺乏信息。 setFlip方法正在翻转粒子精灵(对于已经发射的粒子和未来的粒子)。 flipY()修改发射器设置的任务,使其永久消极 但设置为负值只是一些属性我得到flipX()方法。 通过emmiters属性exeptiong为x和y位置,您可以使用粒子进行每次更改。

   private void flipX(){


    emmiter.getAngle().setHigh(emmiter.getAngle().getHighMin(),emmiter.getAngle().getHighMax());
    emmiter.getAngle().setLow(emmiter.getAngle().getLowMin(),emmiter.getAngle().getLowMax());

    emmiter.getGravity().setHigh(emmiter.getGravity().getHighMin(),emmiter.getGravity().getHighMax());
    emmiter.getGravity().setLow(emmiter.getGravity().getLowMin(),emmiter.getGravity().getLowMax());

    emmiter.getWind().setHigh(-emmiter.getWind().getHighMin(),-emmiter.getWind().getHighMax());
    emmiter.getWind().setLow(-emmiter.getWind().getLowMin(),-emmiter.getWind().getLowMax());

    emmiter.getRotation().setHigh(-emmiter.getRotation().getHighMin(),-emmiter.getRotation().getHighMax());
    emmiter.getRotation().setLow(-emmiter.getRotation().getLowMin(),-emmiter.getRotation().getLowMax());

    emmiter.getYOffsetValue().setLow(emmiter.getYOffsetValue().getLowMin(),emmiter.getYOffsetValue().getLowMax());

    emmiter.getXOffsetValue().setLow(emmiter.getXOffsetValue().getLowMin(),emmiter.getXOffsetValue().getLowMax());

}

我希望它有所帮助。