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

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

Introduction

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

Prototype

public int getMaxParticleCount() 

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();/*ww  w . ja  v a  2  s . co  m*/
    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:de.bitbrain.craft.graphics.ParticleRenderer.java

License:Open Source License

public int getParticleCount(ParticleEffect effect) {

    int count = 0;

    for (ParticleEmitter emitter : effect.getEmitters()) {
        if (count < emitter.getMaxParticleCount()) {
            count = emitter.getMaxParticleCount();
        }/*from   w  w w . j av a2 s.  c o m*/
    }

    return count;
}

From source file:de.myreality.acidsnake.graphics.ParticleRenderer.java

License:Open Source License

@Override
public void onEnterPosition(int indexX, int indexY, Snake snake) {
    if (snakeEffect == null) {
        snakeEffect = particleManager.create(Resources.PARTICLE_FIELD_GREEN, true);
        for (ParticleEmitter emitter : snakeEffect.getEmitters()) {
            emitter.setMaxParticleCount(emitter.getMaxParticleCount() / 2);
        }//from  w w w. ja  v  a 2  s  .co  m
        snakeEffect.start();
    }

    alignOnIndex(indexX, indexY, snakeEffect);
}

From source file:de.myreality.acidsnake.graphics.ParticleRenderer.java

License:Open Source License

@Override
public void onCollide(int indexX, int indexY, Snake snake, WorldEntity target) {

    ParticleEffect explodeEffect = target.getType().getExplodeEffect();

    if (explodeEffect != null) {
        ParticleEffect effect = particleManager.create(explodeEffect, false);
        alignOnIndex(indexX, indexY, effect);
        for (ParticleEmitter emitter : effect.getEmitters()) {
            emitter.setMaxParticleCount(
                    emitter.getMaxParticleCount() / target.getType().getParticleDecreaseFactor());
        }/*ww  w  .  j ava 2  s  . c o  m*/

        effect.start();
    }

}