Example usage for com.badlogic.gdx.scenes.scene2d Actor getStage

List of usage examples for com.badlogic.gdx.scenes.scene2d Actor getStage

Introduction

In this page you can find the example usage for com.badlogic.gdx.scenes.scene2d Actor getStage.

Prototype

public Stage getStage() 

Source Link

Document

Returns the stage that this actor is currently in, or null if not in a stage.

Usage

From source file:com.agateau.ui.Scene2dUtils.java

License:Apache License

public static void fireTouchEvent(Actor target, float stageX, float stageY, InputEvent.Type type) {
    InputEvent event = Pools.obtain(InputEvent.class);
    event.setType(type);/*from  w  ww.  j  a  va  2s.  co  m*/
    event.setStage(target.getStage());
    event.setStageX(stageX);
    event.setStageY(stageY);
    event.setPointer(0);
    event.setButton(0);
    target.fire(event);
    Pools.free(event);
}

From source file:com.agateau.ui.Scene2dUtils.java

License:Apache License

public static void fireChangeEvent(Actor target) {
    ChangeListener.ChangeEvent event = Pools.obtain(ChangeListener.ChangeEvent.class);
    event.setStage(target.getStage());
    target.fire(event);//from  w  w  w  . j  av  a  2s  . c om
    Pools.free(event);
}

From source file:com.kotcrab.vis.ui.util.ActorUtils.java

License:Apache License

/**
 * Makes sures that actor will be fully visible in stage. If it's necessary actor position will be changed to fit it
 * on screen./*from   ww  w .  j  av a 2  s.c  o  m*/
 * @throws IllegalStateException if actor does not belong to any stage.
 */
public static void keepWithinStage(Actor actor) {
    Stage stage = actor.getStage();
    if (stage == null) {
        throw new IllegalStateException(
                "keepWithinStage cannot be used on Actor that doesn't belong to any stage. ");
    }
    keepWithinStage(actor.getStage(), actor);
}

From source file:com.stercore.code.net.dermetfan.utils.libgdx.scene2d.Scene2DUtils.java

License:Apache License

/** @param pos the position
 *  @param actor the actor to which coordinate system to convert */
public static Vector2 stageToLocalCoordinates(Vector2 pos, Actor actor) {
    if (actor == actor.getStage().getRoot())
        return pos;
    return actor.getStage().getRoot().localToDescendantCoordinates(actor, pos);
}

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

License:Open Source License

@Override
public final void start(final Callback callback) {
    final Actor target = getTargetActor();
    stage = target.getStage();
    if (stage == null)
        throw new IllegalStateException("actor not on stage!");
    listener = new InputListener() {
        @Override/* w w  w  .j a v a 2  s  . co m*/
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (!event.getTarget().isDescendantOf(target)) {
                event.cancel();
                return false;
            }
            return true;
        }
    };
    stage.addCaptureListener(listener);
    resources.put("allowTouchDownTo", listener);
    callback.taskEnded();
}

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

License:Open Source License

@Override
public void start(final Callback callback) {
    init();//from w w w .  j  a v  a 2  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.common.tutorial.tasks.ForceClickActor.java

License:Open Source License

@Override
public final void start(final Callback callback) {
    final Actor target = getTargetActor();
    stage = target.getStage();
    if (stage == null)
        throw new IllegalStateException("actor not on stage!");
    listener = new InputListener() {

        @Override//from  w w w  .j a  v  a  2 s  .co  m
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (!event.getTarget().isDescendantOf(target)) {
                event.cancel();
                return false;
            }
            return true;
        }

        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            Actor result = stage.hit(event.getStageX(), event.getStageY(), true);
            if (result == null || !result.isDescendantOf(target)) {
                event.cancel();
                return;
            }
            stage.removeCaptureListener(this);
            callback.taskEnded();
        }
    };
    stage.addCaptureListener(listener);
}

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

License:Open Source License

@Override
public final void start(final Callback callback) {
    final Actor actor = getActor();
    final Rectangle[] targets = getTargets();
    final Stage stage = actor.getStage();
    if (actor.getStage() == null)
        throw new IllegalStateException("actor is not on stage!");
    stage.addCaptureListener(new InputListener() {
        @Override/*from   ww w. java  2  s . co  m*/
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (!event.getTarget().isDescendantOf(actor)) {
                event.cancel();
                return false;
            }
            return true;
        }

        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            for (Rectangle target : targets) {
                if (target.contains(event.getStageX(), event.getStageY())) {
                    stage.removeCaptureListener(this);
                    callback.taskEnded();
                    return;
                }
            }
            event.cancel();
        }
    });
}

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

License:Open Source License

@Override
public final void start(final Callback callback) {
    final Actor target = getTargetActor();
    stage = target.getStage();
    if (stage == null)
        throw new IllegalStateException("actor not on stage!");
    listener = new InputListener() {

        @Override//from  w ww.j a  v a  2 s  .c  o m
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            return event.getTarget().isDescendantOf(target);
        }

        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            Actor result = stage.hit(event.getStageX(), event.getStageY(), true);
            if (result == null || !result.isDescendantOf(target)) {
                return;
            }
            stage.removeCaptureListener(this);
            callback.taskEnded();
        }
    };
    stage.addCaptureListener(listener);
}

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);//from w w  w . j a v a 2 s.  com
        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();
}