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

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

Introduction

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

Prototype

public void rotate(float degrees) 

Source Link

Document

Sets the sprite's rotation in degrees relative to the current rotation.

Usage

From source file:com.binarytenshi.nopassing.core.environment.StreetHandler.java

private static Sprite getSprite(int x, int y) {
    Sprite sprite = new Sprite(streetTexture, 0, 0, TextureLib.tileSide, TextureLib.tileSide);

    // up, right, down, left (0b0000)
    byte orientation = getOrientation(x, y);

    switch (orientation) {
    // DEFAULT; UP DOWN
    case 0b0000:/*from ww  w. j  av a2 s. c o m*/
    case 0b1000:
    case 0b0010:
    case 0b1010:
        sprite.setRegion(0, 0, TextureLib.tileSide, TextureLib.tileSide);
        break;

    // LEFT RIGHT
    case 0b0101:
    case 0b0100:
    case 0b0001:
        sprite.setRegion(0, 0, TextureLib.tileSide, TextureLib.tileSide);
        sprite.setRotation(90f);
        break;

    // DOWN LEFT
    case 0b0011:
        sprite.setRegion(TextureLib.tileSide, 0, TextureLib.tileSide, TextureLib.tileSide);
        break;

    // RIGHT DOWN
    case 0b0110:
        sprite.setRegion(TextureLib.tileSide, 0, TextureLib.tileSide, TextureLib.tileSide);
        sprite.rotate(-90f);
        break;

    // UP RIGHT
    case 0b1100:
        sprite.setRegion(TextureLib.tileSide, 0, TextureLib.tileSide, TextureLib.tileSide);
        sprite.rotate(180f);
        break;

    // UP LEFT
    case 0b1001:
        sprite.setRegion(TextureLib.tileSide, 0, TextureLib.tileSide, TextureLib.tileSide);
        sprite.rotate(90f);
        break;

    // UP RIGHT DOWN
    case 0b1110:
        sprite.setRegion(0, TextureLib.tileSide, TextureLib.tileSide, TextureLib.tileSide);
        break;

    // UP RIGHT LEFT
    case 0b1101:
        sprite.setRegion(0, TextureLib.tileSide, TextureLib.tileSide, TextureLib.tileSide);
        sprite.rotate(-90f);
        break;

    // RIGHT DOWN LEFT
    case 0b0111:
        sprite.setRegion(0, TextureLib.tileSide, TextureLib.tileSide, TextureLib.tileSide);
        sprite.rotate(90f);
        break;

    // UP DOWN LEFT
    case 0b1011:
        sprite.setRegion(0, TextureLib.tileSide, TextureLib.tileSide, TextureLib.tileSide);
        sprite.rotate(180f);
        break;

    // UP RIGHT DOWN LEFT
    case 0b1111:
        sprite.setRegion(TextureLib.tileSide, TextureLib.tileSide, TextureLib.tileSide, TextureLib.tileSide);
        break;
    }

    return sprite;
}

From source file:com.gmail.emersonmx.tictactoe.GameScreen.java

License:Open Source License

private Actor createHash() {
    Group group = new Group();
    group.setName("hash");

    GridPoint2[] layout = new GridPoint2[] { new GridPoint2(179, 401), new GridPoint2(240, 462),
            new GridPoint2(301, 401), new GridPoint2(240, 340) };

    Sprite sprite = null;
    GridPoint2 point = null;//  ww w  .  ja  v  a 2  s. c om
    for (int i = 0; i < layout.length; ++i) {
        point = layout[i];

        sprite = ttt.atlas.createSprite("hash_line");
        sprite.setCenter(point.x, point.y);
        if (i % 2 != 0) {
            sprite.rotate(90);
        }

        group.addActor(new SpriteActor("hash_line_" + i, sprite));
    }

    return group;
}

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;//ww w. j a v a 2s  .  c om
            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.talas777.ZombieLord.Minigames.TowerDefense.Defender.java

License:Open Source License

public void act(LinkedList<Attacker> attackers, float deltaTime) {
    availableTime += deltaTime;/*  ww  w  . ja  v a 2 s .c  o  m*/

    boolean noAction = true;

    if (availableTime < actionDelay) {
        return; // still 'charging' to carry out another action
    }

    LinkedList<Attacker> wantToShoot = new LinkedList<Attacker>();
    int northmost = 0;
    int weakest = Integer.MAX_VALUE;
    int nearest = 99;
    // Defender strategy: most north, weakest, nearest
    for (Attacker attacker : attackers) {
        if (attacker.getY() > northmost) {
            wantToShoot = new LinkedList<Attacker>();
            northmost = attacker.getY();
            weakest = attacker.health;
            nearest = ZombieDefense.getDistanceTo(attacker.getX(), attacker.getY(), this.getX(), this.getY());
            wantToShoot.add(attacker);
        } else if (attacker.getY() == northmost) {
            if (attacker.health < weakest) {
                wantToShoot = new LinkedList<Attacker>();
                northmost = attacker.getY();
                weakest = attacker.health;
                nearest = ZombieDefense.getDistanceTo(attacker.getX(), attacker.getY(), this.getX(),
                        this.getY());
                wantToShoot.add(attacker);
            } else if (attacker.health == weakest) {
                int dist = ZombieDefense.getDistanceTo(attacker.getX(), attacker.getY(), this.getX(),
                        this.getY());
                if (dist < nearest) {
                    wantToShoot = new LinkedList<Attacker>();
                    northmost = attacker.getY();
                    weakest = attacker.health;
                    nearest = ZombieDefense.getDistanceTo(attacker.getX(), attacker.getY(), this.getX(),
                            this.getY());
                    wantToShoot.add(attacker);
                } else if (dist == nearest) {
                    wantToShoot.add(attacker);
                }
            }
        }
    }

    for (Attacker attacker : wantToShoot) {
        if (availableTime < actionDelay)
            return; // no more time left (have to 'charge' again..)

        if (isInRange(attacker)) {
            // attack
            Sprite arrow = new Sprite(arrowTex, 32, 32);
            int fromx = this.getX() * 32;
            int fromy = this.getY() * 32;
            int tox = attacker.getX() * 32;
            int toy = attacker.getY() * 32;
            this.shootTimeLeft = 1f;

            float angle = getRotationDegrees(fromx, fromy, tox, toy);

            if (angle <= 45 || angle > 315) {
                // north
                this.direction = ZombieLord.DIR_NORTH;
            } else if (angle > 45 && angle <= 135) {
                // east
                this.direction = ZombieLord.DIR_WEST;
            } else if (angle > 135 && angle <= 225) {
                // south
                this.direction = ZombieLord.DIR_SOUTH;
            } else // west
                this.direction = ZombieLord.DIR_EAST;

            if (angle == 90)
                arrow.rotate90(true);
            else if (angle == 270)
                arrow.rotate90(false);
            else
                arrow.rotate(angle);

            ZombieLord.sendAnimatedMissile(arrow, fromx, tox, fromy, toy, 5.7f);

            attacker.health -= damage;
            availableTime -= actionDelay;
            noAction = false;
        }
    }
    if (noAction && availableTime > actionDelay) {
        availableTime = actionDelay; // dont charge for more than 1 shot.
    }

}

From source file:EntityManager.RenderSystem.java

public static void render() {
    if (bullets.size() > 100) {
        for (int i = 50; i > 0; i--) {
            world.destroyBody(bm.get(bullets.get(i)).body);
            EntityManager.destroy(bullets.get(i));
        }//from w  w w. j a v a 2s.  co  m
    }

    SpriteBatch batch = new SpriteBatch();
    Sprite player;// = TextureHolder.initializePlayer(bm.get(players.first()).body);

    Texture tex = new Texture("player.gif");
    player = new Sprite(tex);
    //            player.scale(1f);

    player.scale(SCALE * -.3f);
    player.setCenter(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);
    player.rotate((float) Math.toDegrees(bm.get(players.first()).body.getAngle()));
    batch.begin();

    player.draw(batch);

    batch.setProjectionMatrix(camera.combined);
    //        player.draw(batch);

    EntityManager.draw(Gdx.graphics.getDeltaTime(), batch);
    //        batch.draw(tex, w, w);
    batch.end();
    batch.dispose();
}

From source file:seventh.client.gfx.TextureUtil.java

License:Open Source License

public static void setFlips(Sprite sprite, boolean isFlippedHorizontal, boolean isFlippedVert,
        boolean isFlippedDiagnally) {
    if (sprite == null)
        return;/*from   ww  w.ja  va  2  s.co m*/

    if (isFlippedDiagnally) {
        if (isFlippedHorizontal && isFlippedVert) {
            sprite.flip(true, false);
            sprite.rotate(-270f);
        } else if (isFlippedHorizontal) {
            sprite.rotate(-270f);
        } else if (isFlippedVert) {
            sprite.rotate(-90f);
        } else {
            sprite.flip(false, true);
            sprite.rotate(-270f);
        }
    } else {
        sprite.flip(isFlippedHorizontal, isFlippedVert);
    }
}