水平翻转 (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 函数 flipY
和 setFlip(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());
}
希望对大家有所帮助。
我得到了一个在组内的粒子效果
shellParticle = new ParticleEffect();
shellParticle.load(Gdx.files.internal("shell13"),Gdx.files.internal(""));
shellParticle.getEmitters().first().setPosition(0,0);
shellParticle.scaleEffect(0.3f);
我需要它水平翻转,但它只是 jave 函数 flipY
和 setFlip(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());
}
希望对大家有所帮助。