【问题标题】:I want to scale ParticleEffect - Libgdx我想缩放 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?

标签: libgdx scale scaling particles


【解决方案1】:

首先,我想解释一下为什么当前的方法行不通。请注意,您用于缩放的方法名为scaleEffect,而不是setScale。每次调用它时,效果都会相对于其当前状态进行缩放。当您使用合并的粒子效果时,您可以将效果缩放到重复使用粒子的次数。这就是为什么您会看到它呈指数级增长。

因此,解决方案是仅缩放您用作池原型的粒子效果。比如:

prototypeEffect.scaleEffect(Values.Scalar_Width * 1.3f);
ParticleEffectPool yellow_star_pool = new ParticleEffectPool(prototypeEffect, 10, 100);

那么您不必缩放获得的每个粒子效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    相关资源
    最近更新 更多