W mojej grze używamlibgdx: skala Particle
static final float FRUSTUM_WIDTH = 10;
static final float FRUSTUM_HEIGHT = 15;
Więc kiedy rysuję cząstki biorą cały ekran i są ogromne! Jak mogę je dopasować do moich potrzeb?
// Pew Labs
W mojej grze używamlibgdx: skala Particle
static final float FRUSTUM_WIDTH = 10;
static final float FRUSTUM_HEIGHT = 15;
Więc kiedy rysuję cząstki biorą cały ekran i są ogromne! Jak mogę je dopasować do moich potrzeb?
// Pew Labs
Albo użyć edytora cząstek (szczerze mówiąc nie sądzę Dobrym pomysłem jest wymiarowanie cząstek, jak wspomniałeś, cząstki nie będą zbyt małe (na cokolwiek innego, co naprawdę polecam)) lub po prostu otwórz plik efektów cząsteczkowych. Powinien być wygenerowany przez redaktora lub możesz go skopiować z przykładów. W tym pliku przeszukiwać pola poniżej:
- 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
Regulacja highMin
i highMax
ile potrzeba.
Cóż, można użyć edytora cząstek i dostosować rozmiar tam:
Ye dzięki. ale czy nie spadnie poniżej 1 –
jakiejkolwiek aktualizacji na 2017 rok? – lacas
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);
To jest naprawdę pomocne, dziękuję! –
Użyłem takie samo podejście jak Victor ale co pracował dla mnie:
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();
To i wszystkie inne, które nie współpracują z najnowszą biblioteką, jakąkolwiek pomoc? – lacas
Osobiście nie używałem libgdx od jakiegoś czasu, przepraszam :(. – dom