我想缩放 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的主要内容,如果未能解决你的问题,请参考以下文章

IOS启动画面缩放问题

在画布元素中使用 javascript 从捏合位置缩放

UIImageView 手势(缩放、旋转)问题

MKMapView 和注释隐藏与缩放

检测移动浏览器捏缩放

pyqtgraph 自定义缩放问题