use of com.badlogic.gdx.graphics.g3d.particles.ParticleController in project libgdx by libgdx.
the class EffectPanel method createDefaultBillboardController.
private ParticleController createDefaultBillboardController() {
//Emission
RegularEmitter emitter = new RegularEmitter();
emitter.getDuration().setLow(3000);
emitter.getEmission().setHigh(250);
emitter.getLife().setHigh(500, 1000);
emitter.getLife().setTimeline(new float[] { 0, 0.66f, 1 });
emitter.getLife().setScaling(new float[] { 1, 1, 0.3f });
emitter.setMaxParticleCount(200);
//Spawn
PointSpawnShapeValue pointSpawnShapeValue = new PointSpawnShapeValue();
SpawnInfluencer spawnSource = new SpawnInfluencer(pointSpawnShapeValue);
//Color
ColorInfluencer.Single colorInfluencer = new ColorInfluencer.Single();
colorInfluencer.colorValue.setColors(new float[] { 1, 0.12156863f, 0.047058824f, 0, 0, 0 });
colorInfluencer.colorValue.setTimeline(new float[] { 0, 1 });
colorInfluencer.alphaValue.setHigh(1);
colorInfluencer.alphaValue.setTimeline(new float[] { 0, 0.5f, 0.8f, 1 });
colorInfluencer.alphaValue.setScaling(new float[] { 0, 0.15f, 0.5f, 0 });
//Velocity
DynamicsInfluencer velocityInfluencer = new DynamicsInfluencer();
//Directional
DynamicsModifier.PolarAcceleration velocityValue = new DynamicsModifier.PolarAcceleration();
velocityValue.phiValue.setHigh(-35, 35);
velocityValue.phiValue.setActive(true);
velocityValue.phiValue.setTimeline(new float[] { 0, 0.5f, 1 });
velocityValue.phiValue.setScaling(new float[] { 1, 0, 0 });
velocityValue.thetaValue.setHigh(0, 360);
velocityValue.strengthValue.setHigh(5, 10);
velocityInfluencer.velocities.add(velocityValue);
return new ParticleController("Billboard Controller", emitter, new BillboardRenderer(editor.getBillboardBatch()), new RegionInfluencer.Single(editor.getTexture()), spawnSource, colorInfluencer, velocityInfluencer);
}
use of com.badlogic.gdx.graphics.g3d.particles.ParticleController in project libgdx by libgdx.
the class EffectPanel method createDefaultModelInstanceController.
private ParticleController createDefaultModelInstanceController() {
//Emission
RegularEmitter emitter = new RegularEmitter();
emitter.getDuration().setLow(3000);
emitter.getEmission().setHigh(80);
emitter.getLife().setHigh(500, 1000);
emitter.getLife().setTimeline(new float[] { 0, 0.66f, 1 });
emitter.getLife().setScaling(new float[] { 1, 1, 0.3f });
emitter.setMaxParticleCount(100);
//Color
ColorInfluencer.Random colorInfluencer = new ColorInfluencer.Random();
//Spawn
EllipseSpawnShapeValue spawnShapeValue = new EllipseSpawnShapeValue();
spawnShapeValue.setDimensions(1, 1, 1);
SpawnInfluencer spawnSource = new SpawnInfluencer(spawnShapeValue);
//Velocity
DynamicsInfluencer velocityInfluencer = new DynamicsInfluencer();
//Directional
DynamicsModifier.CentripetalAcceleration velocityValue = new DynamicsModifier.CentripetalAcceleration();
velocityValue.strengthValue.setHigh(5, 11);
velocityValue.strengthValue.setActive(true);
//velocityValue.setActive(true);
velocityInfluencer.velocities.add(velocityValue);
return new ParticleController("ModelInstance Controller", emitter, new ModelInstanceRenderer(editor.getModelInstanceParticleBatch()), new ModelInfluencer.Single((Model) editor.assetManager.get(FlameMain.DEFAULT_MODEL_PARTICLE)), spawnSource, colorInfluencer, velocityInfluencer);
}
use of com.badlogic.gdx.graphics.g3d.particles.ParticleController in project libgdx by libgdx.
the class EffectPanel method createDefaultTemplateController.
public ParticleController createDefaultTemplateController() {
//Emission
RegularEmitter emitter = new RegularEmitter();
emitter.getDuration().setLow(3000);
emitter.getEmission().setHigh(90);
emitter.getLife().setHigh(1000);
emitter.getLife().setTimeline(new float[] { 0, 0.66f, 1 });
emitter.getLife().setScaling(new float[] { 1, 1, 0.3f });
emitter.setMaxParticleCount(100);
//Spawn
PointSpawnShapeValue pointSpawnShapeValue = new PointSpawnShapeValue();
pointSpawnShapeValue.xOffsetValue.setLow(0, 1f);
pointSpawnShapeValue.xOffsetValue.setActive(true);
pointSpawnShapeValue.yOffsetValue.setLow(0, 1f);
pointSpawnShapeValue.yOffsetValue.setActive(true);
pointSpawnShapeValue.zOffsetValue.setLow(0, 1f);
pointSpawnShapeValue.zOffsetValue.setActive(true);
SpawnInfluencer spawnSource = new SpawnInfluencer(pointSpawnShapeValue);
ScaleInfluencer scaleInfluencer = new ScaleInfluencer();
scaleInfluencer.value.setHigh(1f);
//Color
ColorInfluencer.Single colorInfluencer = new ColorInfluencer.Single();
colorInfluencer.colorValue.setColors(new float[] { 1, 0.12156863f, 0.047058824f, 0, 0, 0 });
colorInfluencer.colorValue.setTimeline(new float[] { 0, 1 });
colorInfluencer.alphaValue.setHigh(1);
colorInfluencer.alphaValue.setTimeline(new float[] { 0, 0.5f, 0.8f, 1 });
colorInfluencer.alphaValue.setScaling(new float[] { 0, 0.15f, 0.5f, 0 });
return new ParticleController("Billboard Controller", emitter, new BillboardRenderer(editor.getBillboardBatch()), new RegionInfluencer.Single(editor.getTexture()), spawnSource, scaleInfluencer, colorInfluencer);
}
use of com.badlogic.gdx.graphics.g3d.particles.ParticleController in project libgdx by libgdx.
the class EffectPanel method importEffect.
protected void importEffect() {
File file = editor.showFileLoadDialog();
if (file != null) {
ParticleEffect effect;
if ((effect = editor.openEffect(file, false)) != null) {
for (ParticleController controller : effect.getControllers()) addEmitter(controller, false);
editIndex = 0;
emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex);
}
}
}
use of com.badlogic.gdx.graphics.g3d.particles.ParticleController in project libgdx by libgdx.
the class ParticleControllerInfluencerPanel method handle.
@Override
public void handle(int aEventType, Object aEventData) {
if (aEventType == FlameMain.EVT_ASSET_RELOADED) {
Object[] data = (Object[]) aEventData;
if (data[0] instanceof ParticleEffect) {
ParticleEffect oldEffect = (ParticleEffect) data[0];
int currentCount = value.templates.size;
value.templates.removeAll(oldEffect.getControllers(), true);
if (value.templates.size != currentCount) {
int diff = currentCount - value.templates.size;
if (diff > 0) {
ParticleEffect newEffect = (ParticleEffect) data[1];
Array<ParticleController> newControllers = newEffect.getControllers();
if (newControllers.size > 0) {
for (int i = 0, c = Math.min(diff, newControllers.size); i < c; ++i) value.templates.add(newControllers.get(i));
}
} else {
value.templates.addAll(((ParticleEffect) editor.assetManager.get(FlameMain.DEFAULT_BILLBOARD_PARTICLE)).getControllers());
}
controllerPicker.reloadTemplates();
controllerPicker.setValue(value.templates);
editor.restart();
}
}
}
}
Aggregations