LibGDX: Particle scale

后端 未结 5 840
不知归路
不知归路 2021-01-13 08:40

In my game I use

static final float FRUSTUM_WIDTH = 10;
 static final float FRUSTUM_HEIGHT = 15;   

So when I draw the particles they take

5条回答
  •  情深已故
    2021-01-13 09:19

    I have used the same approach as Victor but what worked for me:

        ParticleEffect effect = new ParticleEffect();
        effect.load(Gdx.files.internal("particle/version1.p"), Gdx.files.internal("particle"));
        effect.setPosition(x, .y);
        float pScale = 0.02f;
        float scaling;
        Array emitters = effect.getEmitters();
        for (ParticleEmitter e : emitters) {
    
            scaling = e.getScale().getHighMax();
            e.getScale().setHigh(scaling * pScale);
    
            scaling = e.getScale().getLowMax();
            e.getScale().setLow(scaling * pScale);
    
            scaling = e.getVelocity().getHighMax();
            e.getVelocity().setHigh(scaling * pScale);
    
            scaling = e.getVelocity().getLowMax();
            e.getVelocity().setLow(scaling * pScale);
    
            scaling = e.getSpawnHeight().getHighMax();
            e.getSpawnHeight().setHighMax(scaling * pScale);
    
            scaling = e.getSpawnHeight().getLowMax();
            e.getSpawnHeight().setLowMax(scaling * pScale);
    
            scaling = e.getSpawnHeight().getHighMin();
            e.getSpawnHeight().setHighMin(scaling * pScale);
    
            scaling = e.getSpawnHeight().getLowMin();
            e.getSpawnHeight().setLowMin(scaling * pScale);
    
            scaling = e.getSpawnWidth().getHighMax();
            e.getSpawnWidth().setHighMax(scaling * pScale);
    
            scaling = e.getSpawnWidth().getLowMax();
            e.getSpawnWidth().setLowMax(scaling * pScale);
    
            scaling = e.getSpawnWidth().getHighMin();
            e.getSpawnWidth().setHighMin(scaling * pScale);
    
            scaling = e.getSpawnWidth().getLowMin();
            e.getSpawnWidth().setLowMin(scaling * pScale);
    
            scaling = e.getXOffsetValue().getLowMax();
            e.getXOffsetValue().setLowMax(scaling * pScale);
    
            scaling = e.getXOffsetValue().getLowMin();
            e.getXOffsetValue().setLowMin(scaling * pScale);
    
            scaling = e.getYOffsetValue().getLowMax();
            e.getYOffsetValue().setLowMax(scaling * pScale);
    
            scaling = e.getYOffsetValue().getLowMin();
            e.getYOffsetValue().setLowMin(scaling * pScale);
        }
        effect.start();
    

提交回复
热议问题