我想缩放 ParticleEffect - Libgdx
Posted
技术标签:
【中文标题】我想缩放 ParticleEffect - Libgdx【英文标题】:I want to scale ParticleEffect - Libgdx 【发布时间】:2015-01-21 14:04:41 【问题描述】:基本上我的问题很简单 - 我有一个 ParticleEffect,它在小屏幕上看起来不错,但在我的私人手机(三星 S4)上它看起来非常小。我的问题是:如何扩展效果?
我已经做过这样的事情了:
// Callback method
public void addEffect(Vector2 position, boolean special)
// Callback Method for the particle effects
PooledEffect effect;
if (!special)
effect = (MathUtils.random(0, 1) == 0) ? yellow_star_pool.obtain()
: green_star_pool.obtain();
else
effect = special_star_pool.obtain();
effect.setPosition(position.x, position.y);
effect.scaleEffect(Values.Scalar_Width*1.3f);
effects.add(effect);
但结果是效果呈指数级增长,这是我不想要的。
我只想缩放效果,使其在所有屏幕上看起来都一样。我怎样才能做到这一点?
【问题讨论】:
什么是 Values.Scalar_Width? 【参考方案1】:首先,我想解释一下为什么当前的方法行不通。请注意,您用于缩放的方法名为scaleEffect
,而不是setScale
。每次调用它时,效果都会相对于其当前状态进行缩放。当您使用合并的粒子效果时,您可以将效果缩放到重复使用粒子的次数。这就是为什么您会看到它呈指数级增长。
因此,解决方案是仅缩放您用作池原型的粒子效果。比如:
prototypeEffect.scaleEffect(Values.Scalar_Width * 1.3f);
ParticleEffectPool yellow_star_pool = new ParticleEffectPool(prototypeEffect, 10, 100);
那么您不必缩放获得的每个粒子效果。
【讨论】:
以上是关于我想缩放 ParticleEffect - Libgdx的主要内容,如果未能解决你的问题,请参考以下文章