initializeComponents(chartTitle, hasIndependent); lowMinSlider.setValue(value.getLowMin()); lowMaxSlider.setValue(value.getLowMax()); highMinSlider.setValue(value.getHighMin()); highMaxSlider.setValue(value.getHighMax()); chart.setValues(value.getTimeline(), value.getScaling()); relativeCheckBox.setSelected(value.isRelative()); if (hasIndependent) independentCheckbox.setSelected(((ParticleEmitter.IndependentScaledNumericValue)value).isIndependent()); if (value.getLowMin() == value.getLowMax()) lowRangeButton.doClick(0); if (value.getHighMin() == value.getHighMax()) highRangeButton.doClick(0);
public boolean touchDown (int x, int y, int pointer, int newParam) { // effect.setPosition(x, Gdx.graphics.getHeight() - y); ParticleEmitter emitter = emitters.get(emitterIndex); particleCount += 100; System.out.println(particleCount); particleCount = Math.max(0, particleCount); if (particleCount > emitter.getMaxParticleCount()) emitter.setMaxParticleCount(particleCount * 2); emitter.getEmission().setHigh(particleCount / emitter.getLife().getHighMax() * 1000); effect.getEmitters().clear(); effect.getEmitters().add(emitter); return false; }
setMaxParticleCount(readInt(reader, "maxParticleCount")); reader.readLine(); emissionValue.load(reader); reader.readLine(); lifeValue.load(reader); spawnShapeValue.load(reader); reader.readLine(); spawnWidthValue.load(reader); reader.readLine(); spawnHeightValue.load(reader); String line = reader.readLine(); if (line.trim().equals("- Scale -")) { xScaleValue.load(reader); yScaleValue.setActive(false); } else { xScaleValue.load(reader); reader.readLine(); yScaleValue.load(reader); velocityValue.load(reader); reader.readLine(); angleValue.load(reader); reader.readLine(); rotationValue.load(reader); reader.readLine(); windValue.load(reader); reader.readLine(); gravityValue.load(reader);
particle.velocity = velocityValue.newLowValue(); particle.velocityDiff = velocityValue.newHighValue(); if (!velocityValue.isRelative()) particle.velocityDiff -= particle.velocity; particle.angle = angleValue.newLowValue(); particle.angleDiff = angleValue.newHighValue(); if (!angleValue.isRelative()) particle.angleDiff -= particle.angle; float angle = 0; if ((updateFlags & UPDATE_ANGLE) == 0) { angle = particle.angle + particle.angleDiff * angleValue.getScale(0); particle.angle = angle; particle.angleCos = MathUtils.cosDeg(angle); particle.xScale = xScaleValue.newLowValue() / spriteWidth; particle.xScaleDiff = xScaleValue.newHighValue() / spriteWidth; if (!xScaleValue.isRelative()) particle.xScaleDiff -= particle.xScale; particle.yScale = yScaleValue.newLowValue() / spriteHeight; particle.yScaleDiff = yScaleValue.newHighValue() / spriteHeight; if (!yScaleValue.isRelative()) particle.yScaleDiff -= particle.yScale; particle.setScale(particle.xScale + particle.xScaleDiff * xScaleValue.getScale(0), particle.yScale + particle.yScaleDiff * yScaleValue.getScale(0)); } else { particle.setScale(particle.xScale + particle.xScaleDiff * xScaleValue.getScale(0)); particle.rotation = rotationValue.newLowValue(); particle.rotationDiff = rotationValue.newHighValue(); if (!rotationValue.isRelative()) particle.rotationDiff -= particle.rotation; float rotation = particle.rotation + particle.rotationDiff * rotationValue.getScale(0);
initializeComponents(chartTitle, hasIndependent); lowMinSlider.setValue(value.getLowMin()); lowMaxSlider.setValue(value.getLowMax()); highMinSlider.setValue(value.getHighMin()); highMaxSlider.setValue(value.getHighMax()); chart.setValues(value.getTimeline(), value.getScaling()); relativeCheckBox.setSelected(value.isRelative()); if (hasIndependent) independentCheckbox.setSelected(((ParticleEmitter.IndependentScaledNumericValue)value).isIndependent()); if (value.getLowMin() == value.getLowMax()) lowRangeButton.doClick(0); if (value.getHighMin() == value.getHighMax()) highRangeButton.doClick(0);
setMaxParticleCount(readInt(reader, "maxParticleCount")); reader.readLine(); emissionValue.load(reader); reader.readLine(); lifeValue.load(reader); spawnShapeValue.load(reader); reader.readLine(); spawnWidthValue.load(reader); reader.readLine(); spawnHeightValue.load(reader); String line = reader.readLine(); if (line.trim().equals("- Scale -")) { xScaleValue.load(reader); yScaleValue.setActive(false); } else { xScaleValue.load(reader); reader.readLine(); yScaleValue.load(reader); velocityValue.load(reader); reader.readLine(); angleValue.load(reader); reader.readLine(); rotationValue.load(reader); reader.readLine(); windValue.load(reader); reader.readLine(); gravityValue.load(reader);
fx.baseEmitter.getTransparency().setHighMin(t); fx.baseEmitter.getTransparency().setHighMax(t);
public ParticleEmitter newExampleEmitter (String name, boolean select) { final ParticleEmitter emitter = new ParticleEmitter(); 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.getXScale().setHigh(32, 32); emitter.getRotation().setLow(1, 360); emitter.getRotation().setHigh(180, 180); emitter.getRotation().setTimeline(new float[] {0, 1}); emitter.getRotation().setScaling(new float[] {0, 1}); emitter.getRotation().setRelative(true); emitter.getAngle().setHigh(45, 135); emitter.getAngle().setLow(90); emitter.getAngle().setTimeline(new float[] {0, 0.5f, 1}); emitter.getAngle().setScaling(new float[] {1, 0, 0}); emitter.getAngle().setActive(true); emitter.getVelocity().setHigh(30, 300); emitter.getVelocity().setActive(true); emitter.getTint().setColors(new float[] {1, 0.12156863f, 0.047058824f}); emitter.getTransparency().setHigh(1, 1); emitter.getTransparency().setTimeline(new float[] {0, 0.2f, 0.8f, 1}); emitter.getTransparency().setScaling(new float[] {0, 1, 0.75f, 0}); emitter.setMaxParticleCount(200); emitter.setImagePaths(new Array<String>(new String[] { ParticleEditor.DEFAULT_PARTICLE })); addEmitter(name, select, emitter); return emitter; }
private void restart () { delay = delayValue.active ? delayValue.newLowValue() : 0; delayTimer = 0; durationTimer -= duration; duration = durationValue.newLowValue(); emission = (int)emissionValue.newLowValue(); emissionDiff = (int)emissionValue.newHighValue(); if (!emissionValue.isRelative()) emissionDiff -= emission; if (!lifeValue.independent) generateLifeValues(); if (!lifeOffsetValue.independent) generateLifeOffsetValues(); spawnWidth = spawnWidthValue.newLowValue(); spawnWidthDiff = spawnWidthValue.newHighValue(); if (!spawnWidthValue.isRelative()) spawnWidthDiff -= spawnWidth; spawnHeight = spawnHeightValue.newLowValue(); spawnHeightDiff = spawnHeightValue.newHighValue(); if (!spawnHeightValue.isRelative()) spawnHeightDiff -= spawnHeight; updateFlags = 0; if (angleValue.active && angleValue.timeline.length > 1) updateFlags |= UPDATE_ANGLE; if (velocityValue.active) updateFlags |= UPDATE_VELOCITY; if (xScaleValue.timeline.length > 1) updateFlags |= UPDATE_SCALE; if (yScaleValue.active && yScaleValue.timeline.length > 1) updateFlags |= UPDATE_SCALE; if (rotationValue.active && rotationValue.timeline.length > 1) updateFlags |= UPDATE_ROTATION; if (windValue.active) updateFlags |= UPDATE_WIND; if (gravityValue.active) updateFlags |= UPDATE_GRAVITY; if (tintValue.timeline.length > 1) updateFlags |= UPDATE_TINT; if (spriteMode == SpriteMode.animated) updateFlags |= UPDATE_SPRITE; }
public void setLifeMul (float value) { baseEmitter.getLife().setHighMin(MaxParticleLifeMinMs * value); baseEmitter.getLife().setHighMax(MaxParticleLifeMaxMs * value); }
public void stateChanged (ChangeEvent event) { value.setHighMax((Float)highMaxSlider.getValue()); } });
public final void setScaleMul (float value) { baseEmitter.getScale().setHigh(OriginalParticleScaling * value); }
public SmokeEffect (TrackEffect owner) { this.owner = owner; effect = new ParticleEffect(); effect.load(Gdx.files.internal("data/partfx/smoke-small.p"), Art.particles, ""); baseEmitter = effect.getEmitters().get(0); MaxParticleLifeMinMs = baseEmitter.getLife().getHighMin(); MaxParticleLifeMaxMs = baseEmitter.getLife().getHighMax(); OriginalParticleScaling = baseEmitter.getScale().getHighMax(); // MaxParticlesPerEmitterPerSec = baseEmitter.getEmission().getHighMax(); effect.start(); }
public ParticleEmitter newEmitter (String name, boolean select) { final ParticleEmitter emitter = new ParticleEmitter(); emitter.getDuration().setLow(1000); emitter.getEmission().setHigh(50); emitter.getLife().setHigh(500); emitter.getXScale().setHigh(32, 32); emitter.getTint().setColors(new float[] {1, 0.12156863f, 0.047058824f}); emitter.getTransparency().setHigh(1); emitter.setMaxParticleCount(25); emitter.setImagePaths(new Array<String>(new String[] { ParticleEditor.DEFAULT_PARTICLE })); addEmitter(name, select, emitter); return emitter; }
public void actionPerformed (ActionEvent event) { boolean visible = !highMaxSlider.isVisible(); highMaxSlider.setVisible(visible); highRangeButton.setText(visible ? "<" : ">"); GridBagLayout layout = (GridBagLayout)formPanel.getLayout(); GridBagConstraints constraints = layout.getConstraints(highRangeButton); constraints.gridx = visible ? 5 : 4; layout.setConstraints(highRangeButton, constraints); Slider slider = visible ? highMaxSlider : highMinSlider; value.setHighMax((Float)slider.getValue()); } });
public void stateChanged (ChangeEvent event) { value.setHighMin((Float)highMinSlider.getValue()); if (!highMaxSlider.isVisible()) value.setHighMax((Float)highMinSlider.getValue()); } });
public void flipY () { angleValue.setHigh(-angleValue.getHighMin(), -angleValue.getHighMax()); angleValue.setLow(-angleValue.getLowMin(), -angleValue.getLowMax()); gravityValue.setHigh(-gravityValue.getHighMin(), -gravityValue.getHighMax()); gravityValue.setLow(-gravityValue.getLowMin(), -gravityValue.getLowMax()); windValue.setHigh(-windValue.getHighMin(), -windValue.getHighMax()); windValue.setLow(-windValue.getLowMin(), -windValue.getLowMax()); rotationValue.setHigh(-rotationValue.getHighMin(), -rotationValue.getHighMax()); rotationValue.setLow(-rotationValue.getLowMin(), -rotationValue.getLowMax()); yOffsetValue.setLow(-yOffsetValue.getLowMin(), -yOffsetValue.getLowMax()); }
particle.velocity = velocityValue.newLowValue(); particle.velocityDiff = velocityValue.newHighValue(); if (!velocityValue.isRelative()) particle.velocityDiff -= particle.velocity; particle.angle = angleValue.newLowValue(); particle.angleDiff = angleValue.newHighValue(); if (!angleValue.isRelative()) particle.angleDiff -= particle.angle; float angle = 0; if ((updateFlags & UPDATE_ANGLE) == 0) { angle = particle.angle + particle.angleDiff * angleValue.getScale(0); particle.angle = angle; particle.angleCos = MathUtils.cosDeg(angle); particle.xScale = xScaleValue.newLowValue() / spriteWidth; particle.xScaleDiff = xScaleValue.newHighValue() / spriteWidth; if (!xScaleValue.isRelative()) particle.xScaleDiff -= particle.xScale; particle.yScale = yScaleValue.newLowValue() / spriteHeight; particle.yScaleDiff = yScaleValue.newHighValue() / spriteHeight; if (!yScaleValue.isRelative()) particle.yScaleDiff -= particle.yScale; particle.setScale(particle.xScale + particle.xScaleDiff * xScaleValue.getScale(0), particle.yScale + particle.yScaleDiff * yScaleValue.getScale(0)); } else { particle.setScale(particle.xScale + particle.xScaleDiff * xScaleValue.getScale(0)); particle.rotation = rotationValue.newLowValue(); particle.rotationDiff = rotationValue.newHighValue(); if (!rotationValue.isRelative()) particle.rotationDiff -= particle.rotation; float rotation = particle.rotation + particle.rotationDiff * rotationValue.getScale(0);
particle.velocity = velocityValue.newLowValue(); particle.velocityDiff = velocityValue.newHighValue(); if (!velocityValue.isRelative()) particle.velocityDiff -= particle.velocity; particle.angle = angleValue.newLowValue(); particle.angleDiff = angleValue.newHighValue(); if (!angleValue.isRelative()) particle.angleDiff -= particle.angle; float angle = 0; if ((updateFlags & UPDATE_ANGLE) == 0) { angle = particle.angle + particle.angleDiff * angleValue.getScale(0); particle.angle = angle; particle.angleCos = MathUtils.cosDeg(angle); particle.xScale = xScaleValue.newLowValue() / spriteWidth; particle.xScaleDiff = xScaleValue.newHighValue() / spriteWidth; if (!xScaleValue.isRelative()) particle.xScaleDiff -= particle.xScale; particle.yScale = yScaleValue.newLowValue() / spriteHeight; particle.yScaleDiff = yScaleValue.newHighValue() / spriteHeight; if (!yScaleValue.isRelative()) particle.yScaleDiff -= particle.yScale; particle.setScale(particle.xScale + particle.xScaleDiff * xScaleValue.getScale(0), particle.yScale + particle.yScaleDiff * yScaleValue.getScale(0)); } else { particle.setScale(particle.xScale + particle.xScaleDiff * xScaleValue.getScale(0)); particle.rotation = rotationValue.newLowValue(); particle.rotationDiff = rotationValue.newHighValue(); if (!rotationValue.isRelative()) particle.rotationDiff -= particle.rotation; float rotation = particle.rotation + particle.rotationDiff * rotationValue.getScale(0);
initializeComponents(chartTitle, hasIndependent); lowMinSlider.setValue(value.getLowMin()); lowMaxSlider.setValue(value.getLowMax()); highMinSlider.setValue(value.getHighMin()); highMaxSlider.setValue(value.getHighMax()); chart.setValues(value.getTimeline(), value.getScaling()); relativeCheckBox.setSelected(value.isRelative()); if (hasIndependent) independentCheckbox.setSelected(((ParticleEmitter.IndependentScaledNumericValue)value).isIndependent()); if (value.getLowMin() == value.getLowMax()) lowRangeButton.doClick(0); if (value.getHighMin() == value.getHighMax()) highRangeButton.doClick(0);