水平翻转 (X) ParticleEffect [Libgdx]

flip horizontally (X) a ParticleEffect [Libgdx]

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

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

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

setFlip(true,false) just do nothing.

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

设置粒子的负尺度

    shellParticle.scaleEffect(-1f);

然后垂直翻转

    shellParticle.flipY();

这似乎是部分 libgx api 缺少信息。 setFlip 方法正在翻转粒子精灵(对于已经发射的粒子和未来的粒子)。 flipY() 修改emmitter的属性设置一切为负 但是设置为否定的只是一些属性我得到了 flipX() 方法。 实际上,您想对粒子进行的每一次更改都应该使用 x 和 y 位置的 emmiters 属性进行。

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

}

希望对大家有所帮助。