Example usage for com.badlogic.gdx.scenes.scene2d.ui Image getPrefWidth

List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Image getPrefWidth

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d.ui Image getPrefWidth.

Prototype

public float getPrefWidth() 

Source Link

Usage

From source file:com.vlaaad.common.tutorial.tasks.ArrowForceClick.java

License:Open Source License

@Override
public void start(final Callback callback) {
    init();/*  ww  w  .jav a2 s.  c o  m*/
    final Actor target = getTargetActor();
    final Image arrow = new Image(getArrowDrawable());
    final Table message = getMessageTable();
    final Stage stage = target.getStage();
    ArrowDirection direction = getDirection();
    if (stage == null)
        throw new IllegalStateException("target is not on stage");
    addListener(stage, target, arrow, message, callback);
    stage.addActor(arrow);
    stage.addActor(message);
    Vector2 screenPosition = target.localToStageCoordinates(new Vector2());
    switch (direction) {
    case left:
        arrow.setPosition(screenPosition.x - arrow.getPrefWidth() - getArrowOffset(),
                screenPosition.y + target.getHeight() / 2f - arrow.getPrefHeight() / 2f);
        message.setSize(arrow.getX() - getArrowOffset(), stage.getHeight());
        break;
    case right:
        arrow.setPosition(screenPosition.x + target.getWidth() + getArrowOffset(),
                screenPosition.y + target.getHeight() / 2f - arrow.getPrefHeight() / 2f);
        message.setSize(stage.getWidth() - arrow.getX() - arrow.getPrefWidth() - getArrowOffset(),
                stage.getHeight());
        message.setX(arrow.getX() + arrow.getPrefWidth() + getArrowOffset());
        break;
    case top:
        arrow.setPosition(screenPosition.x + target.getWidth() / 2f - arrow.getPrefWidth() / 2f,
                screenPosition.y + target.getHeight() + getArrowOffset());
        message.setSize(stage.getWidth(),
                stage.getHeight() - arrow.getX() - arrow.getPrefHeight() - getArrowOffset());
        message.setY(arrow.getY() + arrow.getPrefHeight() + getArrowOffset());
        break;
    case bottom:
        arrow.setPosition(screenPosition.x + target.getWidth() / 2f - arrow.getPrefWidth() / 2f,
                screenPosition.y - arrow.getPrefHeight() - getArrowOffset());
        message.setSize(stage.getWidth(), arrow.getY() - getArrowOffset());
        break;
    default:
        throw new IllegalStateException("unknown direction: " + direction);
    }

}

From source file:com.vlaaad.dice.game.tutorial.tasks.ShowTutorialArrow.java

License:Open Source License

@Override
public final void start(Callback callback) {

    final Actor target = getTarget();
    final Stage stage = target.getStage();
    if (stage == null)
        throw new IllegalStateException("target is not on stage");
    Image arrow = resources.getIfExists("tutorialArrow");
    if (arrow == null) {
        arrow = new Image(Config.skin.getRegion("ui-tutorial-arrow"));
        arrow.setOrigin(arrow.getWidth() / 2, arrow.getHeight() / 2);
        stage.addActor(arrow);// w w  w .  jav a 2  s .  c o m
        resources.put("tutorialArrow", arrow);
    } else {
        arrow.toFront();
    }
    arrow.clearActions();
    Vector2 screenPosition = target.localToStageCoordinates(tmp.set(0, 0));
    ArrowDirection direction = getDirection();
    switch (direction) {
    case fromLeft:
        arrow.setPosition(screenPosition.x - arrow.getPrefWidth() - getArrowOffset(),
                screenPosition.y + target.getHeight() / 2f - arrow.getPrefHeight() / 2f);
        arrow.setRotation(-90);
        break;
    case fromRight:
        arrow.setPosition(screenPosition.x + target.getWidth() + getArrowOffset() - arrow.getPrefWidth() / 2,
                screenPosition.y + target.getHeight() / 2f - arrow.getPrefHeight() / 2f);
        arrow.setRotation(90);
        break;
    case fromTop:
        arrow.setPosition(screenPosition.x + target.getWidth() / 2f - arrow.getPrefWidth() / 2f,
                screenPosition.y + target.getHeight() + getArrowOffset());
        arrow.setRotation(180);
        break;
    case fromBottom:
        arrow.setPosition(screenPosition.x + target.getWidth() / 2f - arrow.getPrefWidth() / 2f,
                screenPosition.y - arrow.getPrefHeight() - getArrowOffset());
        arrow.setRotation(0);
        break;
    default:
        throw new IllegalStateException("unknown direction: " + direction);
    }
    blink(arrow, direction);
    callback.taskEnded();
}

From source file:com.vlaaad.dice.game.world.controllers.ViewController.java

License:Open Source License

private void addBackgroundObject(boolean anywhere) {
    final Image image = new Image(backgroundDrawables.random());
    backgroundLayer.addActor(image);//from  w ww.ja  v  a2 s  .c o  m

    float scale = 0.5f * MathUtils.random(1, 2);
    image.setSize(image.getPrefWidth() * scale, image.getPrefHeight() * scale);
    image.setRotation(MathUtils.random(0, 1) * 180);
    image.getColor().a = MathUtils.random(0.1f, 0.3f);

    float w = Math.max(world.stage.getWidth(), root.getWidth() + ViewScroller.LEFT + ViewScroller.RIGHT);
    float h = Math.max(world.stage.getHeight(), root.getHeight() + ViewScroller.TOP + ViewScroller.BOTTOM);

    if (anywhere)
        image.setPosition(-root.getX() + w * MathUtils.random(), -root.getY() + h * MathUtils.random());
    else
        image.setPosition(-root.getX() - image.getWidth(), -root.getY() + h * MathUtils.random());

    image.addAction(
            Actions.sequence(Actions.moveBy(w + image.getWidth() - image.getX(), 0, 15 + MathUtils.random(6)),
                    Actions.run(new Runnable() {
                        @Override
                        public void run() {
                            image.remove();
                            addBackgroundObject(false);
                        }
                    })));
}

From source file:com.vlaaad.dice.ui.windows.LoseWindow.java

License:Open Source License

@Override
protected void doShow(Params params) {
    this.callback = params.callback;
    table.clearChildren();/*ww w .j a  va  2s  .  c o  m*/
    Rain.RainStyle style = new Rain.RainStyle();
    float min = getStage().getHeight() * 0.13f;
    float max = getStage().getHeight() * 0.3f;
    style.minDropDistance = min;
    style.minDropHeight = min;
    style.maxDropDistance = max;
    style.maxDropHeight = max;
    Rain rain = new Rain(style);
    rain.setTouchable(Touchable.disabled);
    rain.setFillParent(true);
    table.addActor(rain);
    Label defeat = new LocLabel("ui-lose-window-defeat", DEFEAT_TEXT_COLOR);
    defeat.setFontScale(3f);
    TextButton ok = new LocTextButton("ui-lose-window-to-map");
    ok.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            hide();
        }
    });
    restart = new LocTextButton("ui-replay-game");
    restart.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            doRestart = true;
            hide();
        }
    });
    table.add(defeat).padBottom(25).row();
    if (params.result.viewer.earnedItems.size > 0) {
        Table items = new Table();
        items.setTransform(true);
        ObjectIntMap<Item> earned = params.result.viewer.earnedItems;
        Array<Item> sorted = earned.keys().toArray();
        sorted.sort(Item.ORDER_COMPARATOR);
        for (Item item : sorted) {
            Table rewardView = new Table(Config.skin);
            Image image = new Image(Config.skin, "item/" + item.name);
            Label counter = new Label(String.valueOf(earned.get(item, 0)), Config.skin, "default",
                    DEFEAT_TEXT_COLOR);
            counter.setFontScale(2f);
            rewardView.add(image).size(image.getPrefWidth() * 2, image.getPrefHeight() * 2);
            rewardView.add(counter).padTop(-5);
            items.add(rewardView);
        }
        table.add(items).padTop(-10).row();
    }
    float w = Math.max(90, restart.getPrefWidth() + 4);
    table.add(restart).width(w).row();
    table.add(ok).width(w).row();
    SoundManager.instance.playMusicAsSound("lose");
}