List of usage examples for com.badlogic.gdx.scenes.scene2d Actor getStage
public Stage getStage()
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(); }