Example usage for com.badlogic.gdx.graphics.g2d ParticleEmitter getLife

List of usage examples for com.badlogic.gdx.graphics.g2d ParticleEmitter getLife

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.g2d ParticleEmitter getLife.

Prototype

public ScaledNumericValue getLife() 

Source Link

Usage

From source file:com.badlogic.gdx.tests.lw.ParticleEmitterTestLW.java

License:Apache License

@Override
public void create() {
    spriteBatch = new SpriteBatch();

    effect = new ParticleEffect();
    effect.load(Gdx.files.internal("data/test.p"), Gdx.files.internal("data"));
    effect.setPosition(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);
    // Of course, a ParticleEffect is normally just used, without messing around with its emitters.
    emitters = new Array(effect.getEmitters());
    effect.getEmitters().clear();//from w  w w  .j  a v a 2  s  . c om
    effect.getEmitters().add(emitters.get(0));

    inputProcessor = new InputProcessorLW() {
        public boolean touchUp(int x, int y, int pointer, int button) {
            return false;
        }

        public boolean touchDragged(int x, int y, int pointer) {
            effect.setPosition(x, Gdx.graphics.getHeight() - y);
            return false;
        }

        public boolean touchDown(int x, int y, int pointer, int newParam) {
            effect.setPosition(x, Gdx.graphics.getHeight() - y);
            return false;
        }

        public boolean keyUp(int keycode) {
            return false;
        }

        public boolean keyTyped(char character) {
            return false;
        }

        public boolean keyDown(int keycode) {
            ParticleEmitter emitter = emitters.get(emitterIndex);
            if (keycode == Input.Keys.DPAD_UP)
                particleCount += 5;
            else if (keycode == Input.Keys.DPAD_DOWN)
                particleCount -= 5;
            else if (keycode == Input.Keys.SPACE) {
                emitterIndex = (emitterIndex + 1) % emitters.size;
                emitter = emitters.get(emitterIndex);
                particleCount = (int) (emitter.getEmission().getHighMax() * emitter.getLife().getHighMax()
                        / 1000f);
            } else
                return false;
            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;
        }

        @Override
        public boolean touchMoved(int x, int y) {
            return false;
        }

        @Override
        public boolean scrolled(int amount) {
            return false;
        }

        @Override
        public void touchTap(int x, int y) {

            ParticleEmitter emitter = emitters.get(emitterIndex);
            //            if (keycode == Input.Keys.DPAD_UP)
            //               particleCount += 5;
            //            else if (keycode == Input.Keys.DPAD_DOWN)
            //               particleCount -= 5;
            //            else if (keycode == Input.Keys.SPACE) {
            emitterIndex = (emitterIndex + 1) % emitters.size;
            emitter = emitters.get(emitterIndex);
            particleCount = (int) (emitter.getEmission().getHighMax() * emitter.getLife().getHighMax() / 1000f);
            //            } else
            //               return false;
            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);

            effect.setPosition(x, Gdx.graphics.getHeight() - y);

        }

        @Override
        public void touchDrop(int x, int y) {
            // TODO Auto-generated method stub

        }
    };

    Gdx.input.setInputProcessor(inputProcessor);
}

From source file:com.lynk.gdx.tool.particleeditor.EffectPanel.java

License:Apache License

public ParticleEmitter newEmitter(String name, boolean select) {
    final ParticleEmitter emitter = new ParticleEmitter();

    emitter.getDuration().setLow(1000);/*from   w w  w. j  av a 2s.c o m*/
    emitter.getEmission().setHigh(50);
    emitter.getLife().setHigh(500);
    emitter.getScale().setHigh(32, 32);

    emitter.getTint().setColors(new float[] { 1, 0.12156863f, 0.047058824f });
    emitter.getTransparency().setHigh(1);

    emitter.setMaxParticleCount(25);
    emitter.setImagePath(ParticleEditor.DEFAULT_PARTICLE);

    addEmitter(name, select, emitter);
    return emitter;
}

From source file:com.lynk.gdx.tool.particleeditor.EffectPanel.java

License:Apache License

public ParticleEmitter newExampleEmitter(String name, boolean select) {
    final ParticleEmitter emitter = new ParticleEmitter();

    emitter.getDuration().setLow(3000);// w w  w.j ava  2  s .c o m

    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.getScale().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.setImagePath(ParticleEditor.DEFAULT_PARTICLE);

    addEmitter(name, select, emitter);
    return emitter;
}

From source file:com.lynk.gdx.tool.particleeditor.ParticleEditor.java

License:Apache License

void reloadRows() {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            editRowsPanel.removeAll();//from   w  w  w  . ja v  a 2s . c o m
            addEditorRow(new NumericPanel(pixelsPerMeter, "Pixels per meter", ""));
            addEditorRow(new NumericPanel(zoomLevel, "Zoom level", ""));
            addEditorRow(new NumericPanel(deltaMultiplier, "Delta multiplier", ""));
            addEditorRow(new GradientPanel(backgroundColor, "Background color", "", true));

            rowsPanel.removeAll();
            ParticleEmitter emitter = getEmitter();
            addRow(new ImagePanel(ParticleEditor.this, "Image", ""));
            addRow(new CountPanel(ParticleEditor.this, "Count",
                    "Min number of particles at all times, max number of particles allowed."));
            addRow(new RangedNumericPanel(emitter.getDelay(), "Delay",
                    "Time from beginning of effect to emission start, in milliseconds."));
            addRow(new RangedNumericPanel(emitter.getDuration(), "Duration",
                    "Time particles will be emitted, in milliseconds."));
            addRow(new ScaledNumericPanel(emitter.getEmission(), "Duration", "Emission",
                    "Number of particles emitted per second."));
            addRow(new ScaledNumericPanel(emitter.getLife(), "Duration", "Life",
                    "Time particles will live, in milliseconds."));
            addRow(new ScaledNumericPanel(emitter.getLifeOffset(), "Duration", "Life Offset",
                    "Particle starting life consumed, in milliseconds."));
            addRow(new RangedNumericPanel(emitter.getXOffsetValue(), "X Offset",
                    "Amount to offset a particle's starting X location, in world units."));
            addRow(new RangedNumericPanel(emitter.getYOffsetValue(), "Y Offset",
                    "Amount to offset a particle's starting Y location, in world units."));
            addRow(new SpawnPanel(ParticleEditor.this, emitter.getSpawnShape(), "Spawn",
                    "Shape used to spawn particles."));
            addRow(new ScaledNumericPanel(emitter.getSpawnWidth(), "Duration", "Spawn Width",
                    "Width of the spawn shape, in world units."));
            addRow(new ScaledNumericPanel(emitter.getSpawnHeight(), "Duration", "Spawn Height",
                    "Height of the spawn shape, in world units."));
            addRow(new ScaledNumericPanel(emitter.getScale(), "Life", "Size",
                    "Particle size, in world units."));
            addRow(new ScaledNumericPanel(emitter.getVelocity(), "Life", "Velocity",
                    "Particle speed, in world units per second."));
            addRow(new ScaledNumericPanel(emitter.getAngle(), "Life", "Angle",
                    "Particle emission angle, in degrees."));
            addRow(new ScaledNumericPanel(emitter.getRotation(), "Life", "Rotation",
                    "Particle rotation, in degrees."));
            addRow(new ScaledNumericPanel(emitter.getWind(), "Life", "Wind",
                    "Wind strength, in world units per second."));
            addRow(new ScaledNumericPanel(emitter.getGravity(), "Life", "Gravity",
                    "Gravity strength, in world units per second."));
            addRow(new GradientPanel(emitter.getTint(), "Tint", "", false));
            addRow(new PercentagePanel(emitter.getTransparency(), "Life", "Transparency", ""));
            addRow(new OptionsPanel(ParticleEditor.this, "Options", ""));
            for (Component component : rowsPanel.getComponents())
                if (component instanceof EditorPanel)
                    ((EditorPanel) component).update(ParticleEditor.this);
            rowsPanel.repaint();
        }
    });
}