List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Image getPrefHeight
public float getPrefHeight()
From source file:com.vlaaad.common.tutorial.tasks.ArrowForceClick.java
License:Open Source License
@Override public void start(final Callback callback) { init();/*from w ww. j a v a 2s. c om*/ 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);//from w w w. j ava 2 s.c om 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);/* w w w . j a v a 2s.co 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 .ja v a2s . c om 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"); }