Example usage for com.badlogic.gdx.graphics.g2d Sprite flip

List of usage examples for com.badlogic.gdx.graphics.g2d Sprite flip

Introduction

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

Prototype

public void flip(boolean x, boolean y) 

Source Link

Document

boolean parameters x,y are not setting a state, but performing a flip

Usage

From source file:com.bitfire.postprocessing.demo.ResourceFactory.java

License:Apache License

public static Sprite newSprite(String textureName) {
    Sprite s = new Sprite(newTexture(textureName, false));
    s.flip(false, true);
    return s;//from   w  ww .  j  a  va2 s .c om
}

From source file:com.forerunnergames.peril.client.ui.screens.menus.MenuScreenWidgetFactory.java

License:Open Source License

private Sprite createBottomBackgroundShadowSprite() {
    final Sprite sprite = new Sprite(createTopBackgroundShadowSprite());
    sprite.flip(false, true);

    return sprite;
}

From source file:com.saltosion.gladiator.level.EntityFactory.java

License:Open Source License

private CRenderedObject createPlayerRenderedObject() {
    CRenderedObject renderedObject = new CRenderedObject();

    // Sprite[x][y][flip]
    Sprite[][][] playerSprites = new Sprite[2][19][2];
    for (int x = 0; x < 2; x++) {
        for (int y = 0; y < 19; y++) {
            Sprite noFlip = SpriteLoader.loadSprite(Name.PLAYERIMG, x, y, 128, 112);
            Sprite flip = new Sprite(noFlip);
            flip.flip(true, false);
            playerSprites[x][y][0] = noFlip;
            playerSprites[x][y][1] = flip;
        }/*from w w  w .j  a  v a  2  s.  c  om*/
    }

    renderedObject.setChannelName("default", "legs");
    renderedObject.addChannel("torso");

    // Idle animations
    SpriteSequence torsoIdleRightSequence = new SpriteSequence(IDLE_ANIMATION_SPEED)
            .addSprite(playerSprites[0][0][0]).addSprite(playerSprites[0][1][0]);
    renderedObject.addSequence("Torso-Idle-Right", torsoIdleRightSequence);
    SpriteSequence legsIdleRightSquence = new SpriteSequence(IDLE_ANIMATION_SPEED)
            .addSprite(playerSprites[1][0][0]).addSprite(playerSprites[1][1][0]);
    renderedObject.addSequence("Legs-Idle-Right", legsIdleRightSquence);
    SpriteSequence torsoIdleLeftSequence = new SpriteSequence(IDLE_ANIMATION_SPEED)
            .addSprite(playerSprites[0][0][1]).addSprite(playerSprites[0][1][1]);
    renderedObject.addSequence("Torso-Idle-Left", torsoIdleLeftSequence);
    SpriteSequence legsIdleLeftSquence = new SpriteSequence(IDLE_ANIMATION_SPEED)
            .addSprite(playerSprites[1][0][1]).addSprite(playerSprites[1][1][1]);
    renderedObject.addSequence("Legs-Idle-Left", legsIdleLeftSquence);

    // Running animations
    SpriteSequence torsoRunRightSequence = new SpriteSequence(RUN_ANIMATION_SPEED)
            .addSprite(playerSprites[0][2][0]).addSprite(playerSprites[0][3][0])
            .addSprite(playerSprites[0][4][0]).addSprite(playerSprites[0][5][0])
            .addSprite(playerSprites[0][6][0]).addSprite(playerSprites[0][5][0])
            .addSprite(playerSprites[0][4][0]).addSprite(playerSprites[0][3][0]);
    renderedObject.addSequence("Torso-Run-Right", torsoRunRightSequence);
    SpriteSequence legsRunRightSequence = new SpriteSequence(RUN_ANIMATION_SPEED)
            .addSprite(playerSprites[1][2][0]).addSprite(playerSprites[1][3][0])
            .addSprite(playerSprites[1][4][0]).addSprite(playerSprites[1][5][0])
            .addSprite(playerSprites[1][6][0]).addSprite(playerSprites[1][7][0])
            .addSprite(playerSprites[1][8][0]).addSprite(playerSprites[1][9][0]);
    renderedObject.addSequence("Legs-Run-Right", legsRunRightSequence);
    SpriteSequence torsoRunLeftSequence = new SpriteSequence(RUN_ANIMATION_SPEED)
            .addSprite(playerSprites[0][2][1]).addSprite(playerSprites[0][3][1])
            .addSprite(playerSprites[0][4][1]).addSprite(playerSprites[0][5][1])
            .addSprite(playerSprites[0][6][1]).addSprite(playerSprites[0][5][1])
            .addSprite(playerSprites[0][4][1]).addSprite(playerSprites[0][3][1]);
    renderedObject.addSequence("Torso-Run-Left", torsoRunLeftSequence);
    SpriteSequence legsRunLeftSequence = new SpriteSequence(RUN_ANIMATION_SPEED)
            .addSprite(playerSprites[1][2][1]).addSprite(playerSprites[1][3][1])
            .addSprite(playerSprites[1][4][1]).addSprite(playerSprites[1][5][1])
            .addSprite(playerSprites[1][6][1]).addSprite(playerSprites[1][7][1])
            .addSprite(playerSprites[1][8][1]).addSprite(playerSprites[1][9][1]);
    renderedObject.addSequence("Legs-Run-Left", legsRunLeftSequence);

    // Jumping animation
    SpriteSequence legsJumpRightSequence = new SpriteSequence(SWING_ANIMATION_SPEED)
            .addSprite(playerSprites[1][8][0]);
    renderedObject.addSequence("Legs-Jump-Right", legsJumpRightSequence);
    SpriteSequence legsJumpLeftSequence = new SpriteSequence(SWING_ANIMATION_SPEED)
            .addSprite(playerSprites[1][8][1]);
    renderedObject.addSequence("Legs-Jump-Left", legsJumpLeftSequence);

    // Combat animations
    SpriteSequence torsoCombatRightSequence = new SpriteSequence(SWING_ANIMATION_SPEED)
            .addSprite(playerSprites[0][7][0]).addSprite(playerSprites[0][8][0])
            .addSprite(playerSprites[0][9][0]).addSprite(playerSprites[0][10][0]);
    renderedObject.addSequence("Torso-Combat-Right", torsoCombatRightSequence);
    SpriteSequence torsoCombatLeftSequence = new SpriteSequence(SWING_ANIMATION_SPEED)
            .addSprite(playerSprites[0][7][1]).addSprite(playerSprites[0][8][1])
            .addSprite(playerSprites[0][9][1]).addSprite(playerSprites[0][10][1]);
    renderedObject.addSequence("Torso-Combat-Left", torsoCombatLeftSequence);
    SpriteSequence torsoCombatRightDownSequence = new SpriteSequence(SWING_ANIMATION_SPEED)
            .addSprite(playerSprites[0][11][0]).addSprite(playerSprites[0][12][0])
            .addSprite(playerSprites[0][13][0]).addSprite(playerSprites[0][14][0]);
    renderedObject.addSequence("Torso-Combat-Right-Down", torsoCombatRightDownSequence);
    SpriteSequence torsoCombatRightUpSequence = new SpriteSequence(SWING_ANIMATION_SPEED)
            .addSprite(playerSprites[0][15][0]).addSprite(playerSprites[0][16][0])
            .addSprite(playerSprites[0][17][0]).addSprite(playerSprites[0][18][0]);
    renderedObject.addSequence("Torso-Combat-Right-Up", torsoCombatRightUpSequence);
    SpriteSequence torsoCombatLeftDownSequence = new SpriteSequence(SWING_ANIMATION_SPEED)
            .addSprite(playerSprites[0][11][1]).addSprite(playerSprites[0][12][1])
            .addSprite(playerSprites[0][13][1]).addSprite(playerSprites[0][14][1]);
    renderedObject.addSequence("Torso-Combat-Left-Down", torsoCombatLeftDownSequence);
    SpriteSequence torsoCombatLeftUpSequence = new SpriteSequence(SWING_ANIMATION_SPEED)
            .addSprite(playerSprites[0][15][1]).addSprite(playerSprites[0][16][1])
            .addSprite(playerSprites[0][17][1]).addSprite(playerSprites[0][18][1]);
    renderedObject.addSequence("Torso-Combat-Left-Up", torsoCombatLeftUpSequence);

    renderedObject.playAnimation("torso", "Torso-Idle-Right");
    renderedObject.playAnimation("legs", "Legs-Idle-Right");

    return renderedObject;
}

From source file:com.spaceapps.liftoffgame.screens.GameScreen.java

public void createButtons() {
    engineButton = new ButtonActor(LiftOffGame.getInstance().resources.getNewSprite("button"));
    engineButton.setBounds(0, 0, 150, 100);
    engineButton.setIcon(LiftOffGame.getInstance().resources.getNewSprite("engine"));

    engineButton.addListener(new ClickListener() {
        @Override/*from w w w  . j av a2s.  c o m*/
        public void clicked(InputEvent event, float x, float y) {
            addProgressBar("engine", 10, "Starting engines", ProgressBar.ActionEvent.EngineOn);
            engineButton.setBlendColor(Color.BLUE);
            LiftOffGame.getInstance().resources.playSound(1);
        }
    });

    stage.addActor(engineButton);

    cargoButton = new ButtonActor(LiftOffGame.getInstance().resources.getNewSprite("button"));
    cargoButton.setBounds(0, 100, 150, 100);
    cargoButton.setIcon(LiftOffGame.getInstance().resources.getNewSprite("cargo"));

    cargoButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            addProgressBar("cargo", 6, "Loading cargo", ProgressBar.ActionEvent.None);
            cargoButton.setBlendColor(Color.RED);
            LiftOffGame.getInstance().resources.playSound(1);
            game.loadCargo();
        }
    });

    stage.addActor(cargoButton);

    fuelButton = new ButtonActor(LiftOffGame.getInstance().resources.getNewSprite("button"));
    fuelButton.setBounds(0, 200, 150, 100);
    fuelButton.setIcon(LiftOffGame.getInstance().resources.getNewSprite("fuel"));

    fuelButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            addProgressBar("fuel", 15f, "Fueling rocket", ProgressBar.ActionEvent.None);
            rocketTankFullAnimation();
            fuelButton.setBlendColor(Color.YELLOW);
            LiftOffGame.getInstance().resources.playSound(1);
            game.tankFuel();
        }
    });

    stage.addActor(fuelButton);

    crewButton = new ButtonActor(LiftOffGame.getInstance().resources.getNewSprite("button"));
    crewButton.setBounds(0, 300, 150, 100);
    crewButton.setIcon(LiftOffGame.getInstance().resources.getNewSprite("astronaut"));

    crewButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            addProgressBar("astronaut", 12, "Boarding of crew", ProgressBar.ActionEvent.CrewIn);
            crewButton.setBlendColor(Color.ORANGE);
            LiftOffGame.getInstance().resources.playSound(1);
            game.loadCrew();
        }
    });

    stage.addActor(crewButton);

    radarButton = new ButtonActor(LiftOffGame.getInstance().resources.getNewSprite("button"));
    radarButton.setBounds(0, 400, 150, 100);
    radarButton.setIcon(LiftOffGame.getInstance().resources.getNewSprite("radar"));

    radarButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {

            addProgressBar("radar", 2, "Radar check in progress", ProgressBar.ActionEvent.None);
            radarButton.setBlendColor(Color.GREEN);
            LiftOffGame.getInstance().resources.playSound(1);

        }
    });

    stage.addActor(radarButton);

    platformButton = new ButtonActor(LiftOffGame.getInstance().resources.getNewSprite("button"));
    platformButton.setBounds(0, 500, 150, 100);
    platformButton.setIcon(LiftOffGame.getInstance().resources.getNewSprite("platform_on"));

    platformButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            addProgressBar("platform_on", 10, "Platform", ProgressBar.ActionEvent.PlatformOff);
            platformButton.setBlendColor(Color.PURPLE);
            LiftOffGame.getInstance().resources.playSound(1);
        }
    });

    stage.addActor(platformButton);

    Sprite buttonSprite = LiftOffGame.getInstance().resources.getNewSprite("button");
    buttonSprite.flip(true, false);
    goButton = new ButtonActor(buttonSprite);
    goButton.setBounds(874, 300, 150, 100);
    goButton.setIcon(LiftOffGame.getInstance().resources.getNewSprite("gotext"));

    goButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            LiftOffGame.getInstance().resources.playSound(3);
            LiftOffGame.getInstance().resources.playSound(4);

            Game.EndGameStory s = game.checkConditionsEndGame();
            if (s != Game.EndGameStory.None) {
                System.out.println("Failure: " + s.toString());
                rocketCrashAnimation();
            } else
                game.launchRocket();
        }
    });

    stage.addActor(goButton);

    buttonSprite = LiftOffGame.getInstance().resources.getNewSprite("button");
    buttonSprite.flip(true, false);
    nogoButton = new ButtonActor(buttonSprite);
    nogoButton.setBounds(874, 200, 150, 100);
    nogoButton.setIcon(LiftOffGame.getInstance().resources.getNewSprite("nogotext"));

    nogoButton.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {
            LiftOffGame.getInstance().resources.playSound(5);
            game.postponeStart(30);

        }
    });

    stage.addActor(nogoButton);
}

From source file:com.trueMagic.object.creature.Creature.java

@Override
public void draw(Batch batch, ShapeRenderer shapeRenderer) {
    for (Sprite sprite : sprites) {
        if (sprite != null) {
            sprite.setX(body.getPosition().x * 64 - sprite.getWidth() / 2);
            sprite.setY(body.getPosition().y * 64 - sprite.getHeight() / 2);
            sprite.setRotation((float) (body.getAngle() * 360 / (2 * Math.PI)));
            sprite.flip(facingRight, false);
            sprite.draw(batch);/*from   w w  w .j  a  va 2 s . c  o m*/
        }
    }
}

From source file:group04.core.Renderer.java

private void drawSprite(GameData gameData, World world, Entity entity, Sprite sprite, boolean flip) {
    if (entity.getAngle() != 0) {
        sprite.setRotation((float) Math.toDegrees(entity.getAngle()));
    } else if (flip) {
        if (entity.getEntityType() == EntityType.PLAYER
                && ((gameData.getMouseX() < (entity.getX() - gameData.getCameraX()) && !sprite.isFlipX())
                        || (gameData.getMouseX() > (entity.getX() - gameData.getCameraX())
                                && sprite.isFlipX()))) {
            sprite.flip(true, false);
        }//from w w w.j  a  v  a 2 s .c  om
        if (entity.getEntityType() != EntityType.PLAYER && ((entity.getVelocity() < 0 && !sprite.isFlipX())
                || (entity.getVelocity() > 0 && sprite.isFlipX()))) {
            sprite.flip(true, false);
        }
    }

    sprite.setX(entity.getDrawOffsetX() + entity.getX() - gameData.getCameraX());
    sprite.setY(entity.getDrawOffsetY() + entity.getY() - gameData.getCameraY());
    sprite.draw(batch);
}

From source file:presentation.concretion.game.Character.java

License:Open Source License

/**
 * Load animation of hero./*  w w  w. j  a  v  a  2 s . c om*/
 * 
 * @param stateHero
 *            is the state of hero to load respective animation.
 * @return sprite to animate it.
 */
public Sprite loadAnimationHero(HeroState stateHero, boolean isFaceRight, GameState gameState) {
    Sprite s = null;
    switch (stateHero) {
    case INACTIVE:
        s = ResourceHeros.heroStance.getKeyFrame(stateTime, Animator.ANIMATION_LOOPING);
        attackTime = 0;
        break;
    case AIR:
        s = ResourceHeros.heroJump;
        attackTime = 0;
        break;
    case AIR_ATTACK:
        s = ResourceHeros.heroAirAttack.getKeyFrame(attackTime, Animator.ANIMATION_NONLOOPING);
        attackTime++;
        break;
    case AIR_SP1:
        s = ResourceHeros.heroAirSp1.getKeyFrame(attackTime, Animator.ANIMATION_NONLOOPING);
        attackTime++;
        break;
    case AIR_SP2:
        s = ResourceHeros.heroAirSp2.getKeyFrame(attackTime, Animator.ANIMATION_NONLOOPING);
        attackTime++;
        break;
    case AIR_SP3:
        s = ResourceHeros.heroAirSp3.getKeyFrame(attackTime, Animator.ANIMATION_NONLOOPING);
        attackTime++;
        break;
    case BEHIND_DAMAGE:
        s = ResourceHeros.heroBegindDamage;
        break;
    case FRONT_DAMAGE:
        s = ResourceHeros.heroFrontDamage;
        break;
    case DEAD:
        s = ResourceHeros.heroDead.getKeyFrame(deadTime, Animator.ANIMATION_NONLOOPING);
        deadTime++;
        break;
    case GR_ATTACK_STANCE:
        s = ResourceHeros.heroGrAttackStance.getKeyFrame(attackTime, Animator.ANIMATION_NONLOOPING);
        attackTime++;
        break;
    case GR_SP1:
        s = ResourceHeros.heroGrSp1.getKeyFrame(attackTime, Animator.ANIMATION_NONLOOPING);
        attackTime++;
        break;
    case GR_SP2:
        s = ResourceHeros.heroGrSp2.getKeyFrame(attackTime, Animator.ANIMATION_NONLOOPING);
        attackTime++;
        break;
    case GR_SP3:
        s = ResourceHeros.heroGrSp3.getKeyFrame(attackTime, Animator.ANIMATION_NONLOOPING);
        attackTime++;
        break;
    case WALK:
        s = ResourceHeros.heroRun.getKeyFrame(stateTime, Animator.ANIMATION_LOOPING);
        attackTime = 0;
        break;
    case WIN:
        s = ResourceHeros.heroWin.getKeyFrame(stateTime, Animator.ANIMATION_LOOPING);
        break;
    case LOSE:
        s = ResourceHeros.heroLose.getKeyFrame(stateTime, Animator.ANIMATION_LOOPING);
        break;
    }
    stateTime++;

    // Flip sprite
    if (stateHero == HeroState.DEAD) {
        if (isFaceRight && !s.isFlipX()) {
            s.flip(true, false);
        } else if (!isFaceRight && s.isFlipX()) {
            s.flip(true, false);
        }
    } else {
        if (!isFaceRight && !s.isFlipX()) {
            s.flip(true, false);
        } else if (isFaceRight && s.isFlipX()) {
            s.flip(true, false);
        }
    }

    // when game paused
    if (gameState == GameState.PAUSED) {
        attackTime--;
        stateTime--;
    }
    return s;
}

From source file:presentation.concretion.game.Character.java

License:Open Source License

/**
 * Load animation enemy./*  ww w.  j  a  v  a  2  s .  co m*/
 * 
 * @param isFaceRight
 *            determine if enemy is lock to right, false enemy lock to left.
 * @param state
 *            is the state of enemy.
 * @param delta
 *            is the time passed.
 * @param code
 *            is the code of enemy.
 * @param toRemove
 *            is true enemy is prepared to removed.
 * @param type
 *            is the type of enemy.
 * @param gameState
 *            is the state of game.
 * @return sprite to animate it.
 */
public Sprite loadAnimationEnemies(boolean isFaceRight, EnemyState state, float delta, int code,
        boolean toRemove, EnemyType type, GameState gameState) {
    Sprite s = null;
    EnemyUI enemySprite = null;
    // if is new create it and add to the map
    if (!enemies.containsKey(code)) {
        enemySprite = createEnemySprites(type);
        enemies.put(code, enemySprite);
    } else {
        enemySprite = enemies.get(code);
    }
    // next sprite for the frame
    switch (state) {
    case WALK:
        s = enemySprite.getWalk().getKeyFrame(enemySprite.stateTime, Animator.ANIMATION_LOOPING);
        if (gameState != GameState.PAUSED) {
            enemySprite.stateTime += delta;
        }
        break;
    case DEAD:
        s = enemySprite.getDead().getKeyFrame(enemySprite.deadTime, Animator.ANIMATION_NONLOOPING);
        if (gameState != GameState.PAUSED) {
            enemySprite.deadTime += delta;
        }
        if (toRemove) {
            enemies.remove(code);
        }
        break;
    case ATTACK:
        s = enemySprite.getAttack();
        break;
    case INACTIVE:
        s = enemySprite.getInactive();
        break;
    case KICKED:
        s = enemySprite.getKicked();
        break;
    }

    // Flip image.
    if (isFaceRight && !s.isFlipX()) {
        s.flip(true, false);
    } else if (!isFaceRight && s.isFlipX()) {
        s.flip(true, false);
    }
    return s;
}

From source file:presentation.concretion.game.Character.java

License:Open Source License

/**
 * Load animation ally//from  w  w w .  j  ava 2 s.  com
 * 
 * @param state
 *            is the state of ally.
 * @param isFaceRight
 *            determine if enemy is lock to right, false enemy lock to left.
 * @param delta
 *            is the time passed.
 * @param gameState
 *            is the state of game.
 * @return sprite to animate it.
 */
public Sprite loadAnimationAlly(AllyState state, boolean isFaceRight, float delta, GameState gameState) {
    if (gameState != GameState.PAUSED) {
        timeAlly += delta;
    }
    Sprite s = null;
    s = ResourceAlly.allyFront;
    //
    switch (state) {
    case BORN:
        s = ResourceAlly.allyCreated.getKeyFrame(timeAlly, Animator.ANIMATION_NONLOOPING);
        break;
    case FRONT:
        s = ResourceAlly.allyFront;
        break;
    case WALK:
        s = ResourceAlly.allyWalk.getKeyFrame(timeAlly, Animator.ANIMATION_LOOPING);
        break;
    case INACTIVE:
        s = ResourceAlly.allyFace;
        break;
    }
    // Flip image.
    if (!isFaceRight && !s.isFlipX()) {
        s.flip(true, false);
    } else if (isFaceRight && s.isFlipX()) {
        s.flip(true, false);
    }
    return s;
}

From source file:seventh.client.gfx.effects.particle_system.Emitters.java

License:Open Source License

public static Emitter newWallCrumbleEmitter(Tile tile, Vector2f pos) {
    final int maxParticles = 44;
    final int timeToLive = 100_000;

    Emitter emitter = new Emitter(pos, timeToLive, maxParticles).setPersistent(true).setDieInstantly(false);

    Random rand = emitter.getRandom();
    // TODO: fix the flipping business
    // in tiles, this is driving me nuts!
    Sprite image = new Sprite(tile.getImage());
    image.flip(false, true);

    TextureRegion[] images = new TextureRegion[44];
    int i = 0;//from   www.  j  a  v  a 2s.  c o  m
    for (; i < images.length - 15; i++) {
        int x = rand.nextInt(image.getRegionWidth());
        int y = rand.nextInt(image.getRegionHeight());
        int width = rand.nextInt(image.getRegionWidth() / 2);
        int height = rand.nextInt(image.getRegionHeight() / 2);

        if (x + width > image.getRegionWidth()) {
            width = image.getRegionWidth() - x;
        }

        if (y + height > image.getRegionHeight()) {
            height = image.getRegionHeight() - y;
        }

        Sprite sprite = new Sprite(image);
        TextureUtil.setFlips(sprite, tile.isFlippedHorizontal(), tile.isFlippedVertical(),
                tile.isFlippedDiagnally());
        sprite.setRegion(sprite, x, y, width, height);

        images[i] = sprite;
    }

    Sprite sprite = new Sprite(Art.BLACK_IMAGE, 0, 0, 2, 4);
    for (; i < images.length; i++) {
        images[i] = sprite;
    }

    BatchedParticleGenerator gen = new BatchedParticleGenerator(0, maxParticles)
            .addSingleParticleGenerator(new RandomPositionInRadiusSingleParticleGenerator(10))
            .addSingleParticleGenerator(new RandomRotationSingleParticleGenerator())
            //.addSingleParticleGenerator(new RandomScaleSingleParticleGenerator(0.15f, 1.9f))
            .addSingleParticleGenerator(new RandomSpeedSingleParticleGenerator(250f, 250f))
            .addSingleParticleGenerator(new RandomVelocitySingleParticleGenerator(new Vector2f(1, 0), 180))
            .addSingleParticleGenerator(new RandomTimeToLiveSingleParticleGenerator(timeToLive, timeToLive))
            .addSingleParticleGenerator(new RandomSpriteSingleParticleGenerator(images));

    emitter.addParticleGenerator(gen);

    //emitter.addParticleUpdater(new KillUpdater());
    emitter.addParticleUpdater(new MovementParticleUpdater(0, 40f));
    //emitter.addParticleUpdater(new AlphaDecayUpdater(0f, 0.9878f));
    emitter.addParticleRenderer(new SpriteParticleRenderer());

    return emitter;
}