List of usage examples for com.badlogic.gdx.graphics.g2d Sprite setFlip
public void setFlip(boolean x, boolean y)
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); } }