Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LibGDX:粒子尺度_Java_Android_Libgdx_Particles - Fatal编程技术网

Java LibGDX:粒子尺度

Java LibGDX:粒子尺度,java,android,libgdx,particles,Java,Android,Libgdx,Particles,在我的游戏中,我使用 static final float FRUSTUM_WIDTH = 10; static final float FRUSTUM_HEIGHT = 15; 所以当我画这些粒子时,它们占据了整个屏幕,非常巨大!那么,我如何缩小它们的规模以满足我的需要呢 //Pew Labs您可以使用“粒子编辑器”(particle editor)在此处调整大小: 要么使用“粒子编辑器”(老实说,我认为调整粒子大小不是一个好主意,因为您提到粒子不会变得太小(对于其他任何我真正推荐的

在我的游戏中,我使用

static final float FRUSTUM_WIDTH = 10;
 static final float FRUSTUM_HEIGHT = 15;   
所以当我画这些粒子时,它们占据了整个屏幕,非常巨大!那么,我如何缩小它们的规模以满足我的需要呢


//Pew Labs

您可以使用“粒子编辑器”(particle editor)在此处调整大小:


要么使用“粒子编辑器”(老实说,我认为调整粒子大小不是一个好主意,因为您提到粒子不会变得太小(对于其他任何我真正推荐的方法),要么打开“粒子效果”文件。它应该由编辑器生成,或者您可以从示例中复制它。在此文件中,搜索以下字段:

- Scale - 
lowMin: 0.0
lowMax: 0.0
highMin: 0.6
highMax: 0.6
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0

根据需要调整
highMin
highMax

我使用了与Victor相同的方法,但对我有效的是:

ParticleEffect pe = new ParticleEffect();
    pe.load(Gdx.files.internal("data/particle/particle.p"), Gdx.files.internal("data/particle"));
    pe.setPosition(x, y);

    float pScale = 0.2f;

    float scaling = pe.getEmitters().get(0).getScale().getHighMax();
    pe.getEmitters().get(0).getScale().setHigh(scaling * pScale);

    scaling = pe.getEmitters().get(0).getScale().getLowMax();
    pe.getEmitters().get(0).getScale().setLow(scaling * pScale);

    scaling = pe.getEmitters().get(0).getVelocity().getHighMax();
    pe.getEmitters().get(0).getVelocity().setHigh(scaling * pScale);

    scaling = pe.getEmitters().get(0).getVelocity().getLowMax();
    pe.getEmitters().get(0).getVelocity().setLow(scaling * pScale);
    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<ParticleEmitter> 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();
ParticleEffect效果=新ParticleEffect();
load(Gdx.files.internal(“particle/version1.p”)、Gdx.files.internal(“particle”);
效应。设定位置(x,.y);
浮动pScale=0.02f;
浮动缩放;
数组发射器=effect.getEmitters();
用于(粒子发射器e:发射器){
缩放=e.getScale().getHighMax();
e、 getScale().setHigh(缩放*pScale);
缩放=e.getScale().getLowMax();
e、 getScale().setLow(缩放*pScale);
缩放=e.getVelocity().getHighMax();
e、 getVelocity().setHigh(缩放*pScale);
缩放=e.getVelocity().getLowMax();
e、 getVelocity().setLow(缩放*pScale);
缩放=e.getSpawnHeight().getHighMax();
e、 getSpawnHeight().setHighMax(缩放*pScale);
缩放=e.getSpawnHeight().getLowMax();
e、 getSpawnHeight().setLowMax(缩放*pScale);
缩放=e.getSpawnHeight().getHighMin();
e、 getSpawnHeight().setHighMin(缩放*pScale);
缩放=e.getSpawnHeight().getLowMin();
e、 getSpawnHeight().setLowMin(缩放*pScale);
缩放=e.getSpawnWidth().getHighMax();
e、 getSpawnWidth().setHighMax(缩放*pScale);
缩放=e.getSpawnWidth().getLowMax();
e、 getSpawnWidth().setLowMax(缩放*pScale);
缩放=e.getSpawnWidth().getHighMin();
e、 getSpawnWidth().setHighMin(缩放*pScale);
缩放=e.getSpawnWidth().getLowMin();
e、 getSpawnWidth().setLowMin(缩放*pScale);
缩放=e.getXOffsetValue().getLowMax();
e、 getXOffsetValue().setLowMax(缩放*pScale);
缩放=e.getXOffsetValue().getLowMin();
e、 getXOffsetValue().setLowMin(缩放*pScale);
缩放=e.getYOffsetValue().getLowMax();
e、 getYOffsetValue().setLowMax(缩放*pScale);
缩放=e.getYOffsetValue().getLowMin();
e、 getYOffsetValue().setLowMin(缩放*pScale);
}
效果。开始();

就个人而言,为了根据用户的屏幕处理我的粒子大小,我使用了
缩放视口
,它允许您在固定大小下工作,并根据设备的屏幕大小自动缩放。我通常将
ScalingViewport
用于
缩放;这可以防止粒子拉伸并看起来不好。

这和所有其他未使用最新库的粒子,有帮助吗?就我个人而言,我已经有一段时间没有使用libgdx了,对不起:(。