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

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

Introduction

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

Prototype

public void setFlip(boolean x, boolean y) 

Source Link

Document

Set the sprite's flip state regardless of current condition

Usage

From source file:com.kotcrab.vis.editor.util.gdx.SpriteUtils.java

License:Apache License

public static void setRegion(Sprite sprite, TextureRegion region) {
    boolean flipX, flipY;
    flipX = sprite.isFlipX();/*from  ww w. j a  v a 2s .co m*/
    flipY = sprite.isFlipY();
    sprite.setRegion(region);
    sprite.setFlip(flipX, flipY);
}

From source file:com.quadbits.gdxhelper.utils.SpriteGrid.java

License:Apache License

public void drawSprite(Batch batch, float parentAlpha) {
    final float cos = MathUtils.cosDeg(rotation);
    final float sin = MathUtils.sinDeg(rotation);
    final float alpha = color.a * parentAlpha;
    for (int i = 0; i < nRows; i++) {
        for (int j = 0; j < nCols; j++) {
            // get the sprite
            int row = i;
            int col = j;
            if (flipX) {
                col = nCols - 1 - j;//from w ww  .  java  2s  .  co  m
            }
            if (flipY) {
                row = nRows - 1 - i;
            }
            Sprite spriteCell = getSprite(row, col);

            // save old position
            float oldSpriteCellX = spriteCell.getX();
            float oldSpriteCellY = spriteCell.getY();
            float spriteCellX = MathUtils.floor(oldSpriteCellX);
            float spriteCellY = MathUtils.floor(oldSpriteCellY);
            if (flipX) {
                spriteCellX = width - (spriteCellX + spriteCell.getWidth());
            }
            if (flipY) {
                spriteCellY = height - (spriteCellY + spriteCell.getHeight());
            }

            // set rotation and position
            if (rotation != 0) {
                spriteCell.setOrigin(originX, originY);
                spriteCell.setRotation(rotation);
                spriteCell.setPosition(x + cos * spriteCellX - sin * spriteCellY,
                        y + sin * spriteCellX + cos * spriteCellY);
            } else {
                spriteCell.setPosition(x + spriteCellX, y + spriteCellY);
            }
            spriteCell.setColor(color);
            // set alpha *after* color; otherwise, alpha is overwritten by the color's alpha
            spriteCell.setAlpha(alpha);

            // set flip
            spriteCell.setFlip(flipX, flipY);

            // draw the sprite
            spriteCell.draw(batch);

            // restore position and rotation
            spriteCell.setPosition(oldSpriteCellX, oldSpriteCellY);
            spriteCell.setRotation(0);
        }
    }
}

From source file:com.retrom.volcano.game.WorldRenderer.java

License:Apache License

public void drawPillar(Deque<Background.Element> pillar, float x, float y, boolean flip) {
    LinkedList<DrawTask> drawTasks = new LinkedList<DrawTask>();

    for (Background.Element e : pillar) {
        Sprite keyFrame = null;
        switch (e) {
        case PILLAR_1:
        case PILLAR_2:
        case PILLAR_3:
            int index = e.index();
            keyFrame = Assets.pillars.get(index);
            break;
        case PILLAR_BIG_1:
        case PILLAR_BIG_2:
            keyFrame = Assets.pillars_big.get(e.index() % Assets.pillars_big.size);
            break;
        case PILLAR_END:
            keyFrame = Assets.pillars_end;
            break;
        case PILLAR_START:
            keyFrame = Assets.pillars_start;
            break;
        case PILLAR_HOLE:
            keyFrame = Assets.pillars_hole;
            break;
        case PILLAR_HOLE_BG:
            keyFrame = Assets.pillars_hole_bg;
            break;
        case PILLAR_OPENING_GAP:
            keyFrame = null;//from   w ww .  j  av a2s .  c o m
            break;
        case PILLAR_OPENING_CLOSED_DOOR:
            keyFrame = Assets.openingDoor;
            break;
        case PILLAR_OPENING_TOP:
            keyFrame = Assets.openingDoorTop;
            break;
        case BACKGROUND_BASE:
            keyFrame = Assets.background;
            keyFrame.rotate(30f);
            break;
        case BACKGROUND_OPENING:
            keyFrame = Assets.opening_background;
            keyFrame.rotate(30f);
            break;
        case BACKGROUND_WORLD1_1:
        case BACKGROUND_WORLD1_2:
        case BACKGROUND_WORLD1_3:
        case BACKGROUND_WORLD1_4:
        case BACKGROUND_WORLD1_5:
        case BACKGROUND_WORLD1_6:
            keyFrame = Assets.bg_world1.get(e.index());
            break;
        case BACKGROUND_OVERLAY1_1:
        case BACKGROUND_OVERLAY1_2:
        case BACKGROUND_OVERLAY1_3:
        case BACKGROUND_OVERLAY1_4:
        case BACKGROUND_OVERLAY1_5:
        case BACKGROUND_OVERLAY1_6:
        case BACKGROUND_OVERLAY1_7:
        case BACKGROUND_OVERLAY1_8:
            keyFrame = Assets.bg_overlay_world1.get(e.index());
            break;
        case BACKGROUND_WORLD2_1:
        case BACKGROUND_WORLD2_2:
        case BACKGROUND_WORLD2_3:
        case BACKGROUND_WORLD2_4:
        case BACKGROUND_WORLD2_5:
        case BACKGROUND_WORLD2_6:
            keyFrame = Assets.bg_world2.get(e.index());
            break;
        case BACKGROUND_OVERLAY2_1:
        case BACKGROUND_OVERLAY2_2:
        case BACKGROUND_OVERLAY2_3:
        case BACKGROUND_OVERLAY2_4:
        case BACKGROUND_OVERLAY2_5:
        case BACKGROUND_OVERLAY2_6:
        case BACKGROUND_OVERLAY2_7:
        case BACKGROUND_OVERLAY2_8:
            keyFrame = Assets.bg_overlay_world2.get(e.index());
            break;
        case BACKGROUND_WORLD3_1:
        case BACKGROUND_WORLD3_2:
            keyFrame = Assets.bg_world3.get(e.index());
        default:
            //            Gdx.app.log("ERROR", "Unhandled pillar type: " + e);
            break;
        }
        if (keyFrame != null) {
            keyFrame.setFlip(flip, false);
            drawTasks.addFirst(new DrawTask(keyFrame, x, y));
        }
        y += e.height();
    }
    for (DrawTask task : drawTasks) {
        drawCenterBottom(task.keyFrame, task.x, task.y);
    }
}

From source file:com.retrom.volcano.game.WorldRenderer.java

License:Apache License

private void renderEnemies() {
    for (Enemy e : world.enemies_) {
        Sprite s = e.accept(new Enemy.Visitor<Sprite>() {
            @Override//from w  ww. j a v a2  s . c o  m
            public Sprite visit(Flame flame) {
                return null;
            }

            @Override
            public Sprite visit(TopFireball topFireball) {
                return null;
            }

            @Override
            public Sprite visit(Spitter spitter) {
                Sprite $ = getFrameStopAtLastFrame(Assets.spitter, spitter.stateTime());
                $.setFlip(spitter.side(), false);
                return $;
            }

            @Override
            public Sprite visit(SideFireball sideFireball) {
                return null;
            }
        });
        if (s == null) {
            continue;
        }
        drawCenter(s, e.position);
    }
}

From source file:com.retrom.volcano.game.WorldRenderer.java

License:Apache License

private void renderEffects(List<Effect> effects) {
    for (Effect e : effects) {
        final float[] tiltY = { 0 };
        Sprite s = e.accept(new EffectVisitor<Sprite>() {

            @Override//w ww. java 2  s.  c om
            public Sprite visit(Score1Effect effect) {
                Sprite s = Assets.scoreNum1;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score3Effect effect) {
                Sprite s = Assets.scoreNum3;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score4Effect effect) {
                Sprite s = Assets.scoreNum4;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score5Effect effect) {
                Sprite s = Assets.scoreNum5;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score6Effect effect) {
                Sprite s = Assets.scoreNum6;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score10Effect effect) {
                Sprite s = Assets.scoreNum10;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score15GreenEffect effect) {
                Sprite s = Assets.scoreNum15green;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score15PurpleEffect effect) {
                Sprite s = Assets.scoreNum15purple;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score15TealEffect effect) {
                Sprite s = Assets.scoreNum15teal;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(Score25Effect effect) {
                Sprite s = Assets.scoreNum25;
                s.setAlpha(effect.getAlpha());
                s.setScale(effect.getScale());
                return s;
            }

            @Override
            public Sprite visit(FiniteAnimationEffect effect) {
                return getFrameStopAtLastFrame(effect.getAnimation(), effect.stateTime());
            }

            @Override
            public Sprite visit(OneFrameEffect effect) {
                Sprite s = effect.sprite();
                float tint = effect.getTint();
                s.setColor(tint, tint, tint, tint);
                s.setFlip(effect.getFlip(), false);
                return s;
            }

            @Override
            public Sprite visit(FlameEffect effect) {
                return getFrameStopAtLastFrame(Assets.flamethrowerFlame, effect.stateTime());
            }

            @Override
            public Sprite visit(FireballAnimationEffect effect) {
                return getFrameLoop(Assets.topFireballLoop, effect.stateTime());
            }

            @Override
            public Sprite visit(DiamondGlowEffect effect) {
                Sprite s = null;
                switch (effect.diamond.type) {
                case TOKEN:
                    s = Assets.tokenGlow;
                    break;
                case DIAMOND_BLUE:
                    s = Assets.diamondCyanGlow;
                    break;
                case DIAMOND_PURPLE:
                    s = Assets.diamondPurpleGlow;
                    break;
                case DIAMOND_GREEN:
                    s = Assets.diamondGreenGlow;
                    break;
                default:
                    Gdx.app.error("Error", "Diamond glow on a non-diamond collectable.");
                    break;
                }
                float tint = (float) (0.5 + (Math.sin(effect.stateTime() * 6) + 1) / 5);
                s.setColor(tint, tint, tint, tint);
                effect.position_.y = effect.diamond.position.y + getBounceY(effect.diamond.stateTime());
                effect.position_.x = effect.diamond.position.x;
                return s;
            }

            @Override
            public Sprite visit(PowerupGlow effect) {
                Sprite s = effect.sprite();
                if (effect.c.state() == Collectable.STATUS_IDLE) {
                    effect.position_.y = effect.c.position.y + getBounceY(effect.c.stateTime());
                } else {
                    effect.position_.y = effect.c.position.y;
                }
                effect.position_.x = effect.c.position.x;
                return s;
            }

            @Override
            public Sprite visit(FireballStartEffect effect) {
                effect.position_.y = effect.originalY + cam.position.y;
                Sprite $ = getFrameStopAtLastFrame(effect.getAnimation(), effect.stateTime());
                //               $.setY($.getY() + world.camTarget);
                return $;
            }

            @Override
            public Sprite visit(WarningSkullEffect effect) {
                tiltY[0] = cam.position.y;
                Sprite s = effect.sprite();
                float tint = effect.getTint();
                s.setColor(tint, tint, tint, 1);
                return s;
            }

            @Override
            public Sprite visit(WarningExclEffect effect) {
                // TODO: merge with WarningSkullEffect.
                tiltY[0] = effect.floating ? cam.position.y : 0;
                Sprite s = effect.sprite();
                float tint = effect.getTint();
                s.setColor(tint, tint, tint, 1);
                return s;
            }

            @Override
            public Sprite visit(PlayerShieldEffect effect) {
                Sprite s = null;
                switch (effect.shieldState()) {
                case START:
                    s = getFrameLoopOnSecondAnim(Assets.playerShieldEffectStart, Assets.playerShieldEffect,
                            effect.stateTime());
                    break;
                case MIDDLE:
                    s = getFrameLoop(Assets.playerShieldEffect, effect.stateTime());
                    break;
                case DIE:
                    s = getFrameStopAtLastFrame(Assets.playerShieldEffectEnd, effect.stateTime());
                    break;
                case HIT:
                    s = getFrameLoopOnSecondAnim(Assets.playerShieldEffectHit, Assets.playerShieldEffect,
                            effect.stateTime());
                    break;
                }
                return s;
            }

            @Override
            public Sprite visit(PlayerMagnetEffect effect) {
                Sprite s = getFrameLoop(Assets.playerMagnetEffect, effect.stateTime());
                float tint = effect.getTint();
                s.setColor(tint, tint, tint, tint);
                return s;
            }

            @Override
            public Sprite visit(PlayerOnionSkinEffect effect) {
                Sprite s = getPlayerFrame(effect.playerState, effect.playerStateTime, effect.playerSide,
                        getCostumeAssets());
                float tint = effect.getTint();
                s.setColor(tint, tint, tint, tint);
                tiltY[0] = PLAYER_SPRITE_Y_OFFSET;
                return s;
            }
        });
        if (s != null) {
            s.setRotation(e.getRotation());
            s.setScale(e.getXScale(), e.getYScale());
            s.setAlpha(e.getAlpha());
            Utils.drawCenter(batch, s, e.position_.x, snapToY(e.position_.y + tiltY[0]));
        }
    }
}

From source file:com.retrom.volcano.game.WorldRenderer.java

License:Apache License

private Sprite getPlayerFrame(int state, float stateTime, boolean side, CostumeAssets ca) {
    Sprite keyFrame = null;
    switch (state) {
    case Player.STATE_IDLE:
        keyFrame = getFrameLoop(ca.playerIdle, stateTime);
        keyFrame.setFlip(side, false);
        break;//from   ww  w.  j  a va  2s.c om
    case Player.STATE_RUNNING:
        float startTime = FRAME_TIME * ca.playerRunStart.size;
        if (stateTime < startTime) {
            keyFrame = getFrameLoop(ca.playerRunStart, stateTime, FPS);
        } else {
            keyFrame = getFrameLoop(ca.playerRun, stateTime - startTime, FPS);
        }
        keyFrame.setFlip(side, false);
        break;
    case Player.STATE_JUMPING:
        keyFrame = getFrameLoop(ca.playerJump, stateTime);
        keyFrame.setFlip(side, false);
        break;
    case Player.STATE_LANDING:
        keyFrame = getFrameStopAtLastFrame(ca.playerLand, stateTime);
        keyFrame.setFlip(side, false);
        break;
    case Player.STATE_DIE:
    case Player.STATE_DEAD:
        if (world.player.deathType == Player.DEATH_BY_BURN) {
            keyFrame = getFrameDisappearAfterLastFrame(ca.playerBurn, stateTime);
        } else if (world.player.deathType == Player.DEATH_BY_CRUSH) {
            keyFrame = getFrameDisappearAfterLastFrame(ca.playerSquash, stateTime);
        } else {
            Gdx.app.log("ERROR", "Player is in death type: " + world.player.deathType);
        }
        if (keyFrame != null) {
            keyFrame.setFlip(side, false);
        }
        break;
    default:
        Gdx.app.log("ERROR", "Player is in invalid state: " + state);
    }
    return keyFrame;
}

From source file:com.retrom.volcano.game.WorldRenderer.java

License:Apache License

private Sprite getPlayerAddFrame(int state, float stateTime, boolean side, CostumeAssets ca) {
    Sprite keyFrame = null;
    switch (state) {
    case Player.STATE_IDLE:
    case Player.STATE_RUNNING:
    case Player.STATE_JUMPING:
    case Player.STATE_LANDING:
        return null;
    case Player.STATE_DIE:
    case Player.STATE_DEAD:
        if (world.player.deathType == Player.DEATH_BY_BURN) {
            keyFrame = getFrameDisappearAfterLastFrame(ca.playerBurnAdd, stateTime);
        } else if (world.player.deathType == Player.DEATH_BY_CRUSH) {
            keyFrame = getFrameDisappearAfterLastFrame(ca.playerSquashAdd, stateTime);
        } else {/*from  www .j a v  a 2s .  c  om*/
            Gdx.app.log("ERROR", "Player is in death type: " + world.player.deathType);
        }
        if (keyFrame != null) {
            keyFrame.setFlip(side, false);
        }
        break;
    default:
        Gdx.app.log("ERROR", "Player is in invalid state: " + state);
    }
    return keyFrame;
}

From source file:org.saltosion.pixelprophecy.systems.RenderingSystem.java

License:Open Source License

@Override
protected void processEntity(Entity entity, float deltaTime) {
    Comp.Physics physics = pm.get(entity);
    Comp.RenderedObject ro = rom.get(entity);

    if (physics.destination.x < 0) {
        ro.setLookingLeft(true);/* www.ja  v a 2s  . c  o  m*/
    } else if (physics.destination.x > 0) {
        ro.setLookingLeft(false);
    }

    for (SpriteChannel channel : ro.getChannels()) {
        // If entity is not moving
        if (physics.destination.isZero()) {
            channel.playAnimation(Names.IDLE); // Play idle animation
        } else { // Otherwise
            channel.playAnimation(Names.WALK); // Play walk animation
        }

        Sprite sprite = channel.getCurrentSprite();
        sprite.setFlip(ro.isLookingLeft(), false);

        Vector2 pos;
        // If Physics has body, use it.
        if (physics.body != null) {
            pos = physics.body.getPosition();
        } else { // Otherwise use backup plan
            pos = physics.location;
        }
        pos.x -= sprite.getWidth() / 2;
        pos.y -= sprite.getHeight() / 2;
        sprite.setPosition(pos.x, pos.y);
        sprite.draw(spriteBatch);

        channel.advance(deltaTime);
    }
}