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

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

Introduction

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

Prototype

Actor

Source Link

Usage

From source file:broken.shotgun.throwthemoon.stages.GameStage.java

License:Open Source License

public GameStage(final AssetManager manager) {
    super(new StretchViewport(WIDTH, HEIGHT));

    this.manager = manager;

    loadLevel();//w ww.j  a  v a 2 s .co  m

    loadSounds();

    loadFont();

    random = new Random(System.currentTimeMillis());
    fadingOut = false;

    background = new Background(manager);
    chain = new MoonChain(manager);
    player = new Player(manager);
    moon = new Moon(manager);

    moonImpactMeter = new MoonImpactMeter(moon);

    screenFadeActor = new Actor();
    screenFadeActor.setBounds(0, 0, WIDTH, HEIGHT);
    screenFadeActor.setColor(Color.CLEAR);

    levelDebugRenderer = new LevelDebugRenderer();
    screenLogger = new StringBuilder();

    uiBatch = new SpriteBatch();
    renderer = new ShapeRenderer();
    renderer.setAutoShapeType(true);

    touchPoint = new Vector2();

    resetLevel();

    debug = isDebug();
    setDebugAll(debug);

    Gdx.input.setInputProcessor(this);

    addListener(new ActorGestureListener() {
        @Override
        public void touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (pointer == 0 && !(event.getTarget() instanceof Enemy || event.getTarget() instanceof Boss
                    || (boss != null && event.getTarget() instanceof MoonChain))) {
                player.moveTo(touchPoint.set(x, y));
            }

            // FIXME replace String.format with StringBuilder for HTML
            if (isDebug())
                Gdx.app.log("GameStage", String.format("touchDown %s %s", event.getType().toString(),
                        event.getTarget().toString()));
            super.touchDown(event, x, y, pointer, button);
        }

        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            if (pointer == 0 && player.isWalking()) {
                player.stop();
            }
            super.touchUp(event, x, y, pointer, button);
        }

        @Override
        public void pan(InputEvent event, float x, float y, float deltaX, float deltaY) {
            if (boss == null || (boss != null && !(event.getTarget() instanceof MoonChain))) {
                player.moveTo(touchPoint.set(x, y));
            }

            super.pan(event, x, y, deltaX, deltaY);
        }

        @Override
        public void tap(InputEvent event, float x, float y, int count, int button) {
            player.performAttack(count);

            float deltaX = ((player.getX() + player.getOriginX()) - x);
            player.setFlipX(deltaX > 0);

            // FIXME replace String.format with StringBuilder for HTML
            if (isDebug()) {
                Actor target = event.getTarget();
                Gdx.app.log("GameStage",
                        String.format("tap type:%s target:%s [target x=%.2f y=%.2f] count:%d [x:%.2f, y:%.2f]",
                                event.getType().toString(), target.toString(), target.getX(), target.getY(),
                                count, x, y));
            }
            super.tap(event, x, y, count, button);
        }

        @Override
        public void fling(InputEvent event, float velocityX, float velocityY, int button) {
            Gdx.app.log("GameStage",
                    String.format("fling velocityX:%.2f velocityY:%.2f", velocityX, velocityY));
            if (player.isMoonThrowEnabled() && velocityY < 0 && chain.isAttached()
                    && event.getTarget() instanceof MoonChain) {
                int multiplier = (boss != null && boss.isDefeated()) ? 10 : 2;
                moon.addDistance(velocityY * multiplier);
                chain.animatePull();
            }
            super.fling(event, velocityX, velocityY, button);
        }

    });

    addListener(new InputListener() {
        int attackCounter = 0;

        @Override
        public boolean keyDown(InputEvent event, int keycode) {
            switch (keycode) {
            case Input.Keys.D:
                if (debug && player.isMoonThrowEnabled() && !moon.isFalling()) {
                    moon.startFalling();
                }
                break;
            case Input.Keys.K:
                if (debug) {
                    clearAllEnemies();
                }
                break;
            case Input.Keys.SPACE:
                attackCounter++;
                player.performAttack(attackCounter);
                return true;
            case Input.Keys.LEFT:
                player.velocity.x = -7;
                player.startWalkState();
                return true;
            case Input.Keys.RIGHT:
                player.velocity.x = 7;
                player.startWalkState();
                return true;
            case Input.Keys.UP:
                player.velocity.y = 7;
                player.startWalkState();
                return true;
            case Input.Keys.DOWN:
                player.velocity.y = -7;
                player.startWalkState();
                return true;
            }

            return super.keyDown(event, keycode);
        }

        @Override
        public boolean keyUp(InputEvent event, int keycode) {
            switch (keycode) {
            case Input.Keys.LEFT:
            case Input.Keys.RIGHT:
                player.velocity.x = 0;
                return true;
            case Input.Keys.UP:
            case Input.Keys.DOWN:
                player.velocity.y = 0;
                return true;
            }
            return super.keyUp(event, keycode);
        }
    });
}

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

License:Apache License

public RefreshHelper(Group group) {
    Actor helperActor = new Actor() {
        @Override/*from   ww w. ja  v  a 2 s .co m*/
        public void setStage(Stage stage) {
            super.setStage(stage);
            installEventListener(stage);
        }
    };
    group.addActor(helperActor);
}

From source file:com.blastedstudios.gdxworld.util.ui.TreeFileChooser.java

License:Apache License

/** creates an anonymous subclass of {@link Node} that recursively adds the children of the given file to it when being {@link Node#setExpanded(boolean) expanded} for the first time
 *  @param file the file to put in {@link Node#setObject(Object)}
 *  @param filter Filters children from being added. May be null to accept all files.
 *  @param labelSupplier supplies labels to use
 *  @param nodeConsumer Does something with nodes after they were created. May be null.
 *  @return the created Node *//*from   ww  w .j  a v a2  s.co m*/
public static Node fileNode(final FileHandle file, final FileFilter filter,
        final Accessor<Label, FileHandle> labelSupplier, final Accessor<Void, Node> nodeConsumer) {
    Label label = labelSupplier.access(file);

    Node node;
    if (file.isDirectory()) {
        final Node dummy = new Node(new Actor());

        node = new Node(label) {
            private boolean childrenAdded;

            @Override
            public void setExpanded(boolean expanded) {
                if (expanded == isExpanded())
                    return;

                if (expanded && !childrenAdded) {
                    if (filter != null)
                        for (File child : file.file().listFiles(filter))
                            add(fileNode(file.child(child.getName()), filter, labelSupplier, nodeConsumer));
                    else
                        for (FileHandle child : file.list())
                            add(fileNode(child, filter, labelSupplier, nodeConsumer));
                    childrenAdded = true;
                    remove(dummy);
                }

                super.setExpanded(expanded);
            }
        };
        node.add(dummy);

        if (nodeConsumer != null)
            nodeConsumer.access(dummy);
    } else
        node = new Node(label);
    node.setObject(file);

    if (nodeConsumer != null)
        nodeConsumer.access(node);

    return node;
}

From source file:com.idp.engine.resources.assets.IdpColorPixmap.java

/**
 * @return new instance of actor that draws this pixmap
 *//*  www.  j ava2 s.  c o m*/
public Actor buildActor() {
    return new Actor() {
        public void draw(Batch batch, float parentAlpha) {
            batch.setColor(getColor());
            batch.getColor().a *= parentAlpha;
            batch.draw(getTexture(), getX(), getY(), getWidth(), getHeight());
        }
    };
}

From source file:com.idp.engine.ui.screens.NetScreen.java

/**
 * Called from {@link NetScreen#dataFailed()} to display error message.
 *//*from w  w w.  j a  v a  2  s . c  o  m*/
protected void initErrorWidget() {
    Text emptyList = new Text(errorMessage, StartTrackApp.getResources().getLabelStyle("h2"));
    emptyList.getStyle().fontColor = Color.valueOf("666666");
    emptyList.setAlignment(Align.center);
    emptyList.setSize(Gdx.graphics.getWidth(), StartTrackApp.dp2px(20));
    listView.getContent().addActor(new Actor()); // adds gap
    listView.getContent().addActor(emptyList);
    listView.getContentWrapper().setBottomOverScroll(0);
}

From source file:com.kotcrab.vis.editor.ui.tabbedpane.DefaultDragAndDropTarget.java

License:Apache License

public DefaultDragAndDropTarget() {
    dummyTarget = new DragAndDrop.Target(new Actor()) {
        @Override/*w w  w. j  ava2  s. c  o m*/
        public boolean drag(DragAndDrop.Source source, DragAndDrop.Payload payload, float x, float y,
                int pointer) {
            return false;
        }

        @Override
        public void drop(DragAndDrop.Source source, DragAndDrop.Payload payload, float x, float y,
                int pointer) {

        }
    };
}

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

License:Apache License

/** creates an anonymous subclass of {@link Node} that recursively adds the children of the given file to it when being {@link Node#setExpanded(boolean) expanded} for the first time
 *  @param file the file to put in {@link Node#setObject(Object)}
 *  @param filter Filters children from being added. May be null to accept all files.
 *  @param labelSupplier supplies labels to use
 *  @param nodeConsumer Does something with nodes after they were created. May be null.
 *  @return the created Node *///from ww w. j av  a  2 s . c o  m
public static Node fileNode(final FileHandle file, final FileFilter filter,
        final Function<Label, FileHandle> labelSupplier, final Function<Void, Node> nodeConsumer) {
    Label label = labelSupplier.apply(file);

    Node node;
    if (file.isDirectory()) {
        final Node dummy = new Node(new Actor());

        node = new Node(label) {
            private boolean childrenAdded;

            @Override
            public void setExpanded(boolean expanded) {
                if (expanded == isExpanded())
                    return;

                if (expanded && !childrenAdded) {
                    if (filter != null)
                        for (File child : file.file().listFiles(filter))
                            add(fileNode(file.child(child.getName()), filter, labelSupplier, nodeConsumer));
                    else
                        for (FileHandle child : file.list())
                            add(fileNode(child, filter, labelSupplier, nodeConsumer));
                    childrenAdded = true;
                    remove(dummy);
                }

                super.setExpanded(expanded);
            }
        };
        node.add(dummy);

        if (nodeConsumer != null)
            nodeConsumer.apply(dummy);
    } else
        node = new Node(label);
    node.setObject(file);

    if (nodeConsumer != null)
        nodeConsumer.apply(node);

    return node;
}

From source file:com.vlaaad.common.GdxHelper.java

License:Open Source License

public static void showStageEvents(final Stage stage) {
    EventListener listener = new EventListener() {
        private final Vector2 tmp = new Vector2();
        private Actor actor = new Actor() {
            @Override/*w  ww . ja  va  2s. c om*/
            public void draw(Batch batch, float parentAlpha) {
                if (target == null)
                    return;
                batch.end();
                Config.shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
                Config.shapeRenderer.setProjectionMatrix(stage.getCamera().combined);
                Gdx.gl.glLineWidth(6);
                Config.shapeRenderer.setColor(Color.ORANGE);
                Vector2 pos = target.localToStageCoordinates(tmp.set(0, 0));
                float x = pos.x, y = pos.y;
                Vector2 top = target.localToStageCoordinates(tmp.set(target.getWidth(), target.getHeight()));
                float maxX = top.x, maxY = top.y;
                Config.shapeRenderer.rect(x, y, maxX - x, maxY - y);

                Config.shapeRenderer.end();
                batch.begin();
            }
        };

        {
            stage.addActor(actor);
        }

        public Actor target;

        @Override
        public boolean handle(Event event) {
            target = event.getTarget();
            return false;
        }
    };
    stage.addListener(listener);
}

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

License:Open Source License

@Override
protected void doShow(Params params) {
    windowParams = params;/*from   www.  ja  v  a 2  s.c  om*/
    final Table content = new Table(Config.skin);
    content.defaults().pad(2);
    content.setBackground("ui-creature-info-background");
    content.setTouchable(Touchable.enabled);
    Container container = new Container(content).top();
    table.add(container).size(162, 218);

    Array<Ability> potions = new Array<Ability>();
    for (Ability ability : params.creature.player.potions()) {
        if (params.creature.player.getPotionCount(ability) > 0)
            potions.add(ability);
    }
    potions.sort(Ability.COST_COMPARATOR);

    Table viewsList = new Table();
    Image selection = new Image(Config.skin.getDrawable("selection/turn"));
    viewsList.addActor(selection);

    LocLabel name = new LocLabel("");
    LocLabel desc = new LocLabel("");
    desc.setAlignment(Align.center /*| Align.top*/);
    desc.setWrap(true);

    Table buttons = new Table();
    buttons.top().defaults().pad(2);

    Table viewRow = new Table();
    viewsList.add(viewRow).row();
    viewRow.defaults().pad(2);
    int i = 0;
    ActorGestureListener l = null;
    for (Ability ability : potions) {
        AbilityIconCounter icon = new AbilityIconCounter(ability,
                params.creature.player.getPotionCount(ability));
        icon.image.setOrigin(icon.image.getWidth() / 2, icon.image.getHeight() / 2);
        ActorGestureListener listener = createPotionTapListener(icon, ability, selection, viewsList, name, desc,
                buttons);
        if (l == null) {
            l = listener;
        }
        icon.addListener(listener);
        i++;
        viewRow.add(icon);
        if (i % 5 == 0) {
            viewRow = new Table();
            viewRow.defaults().pad(2);
            viewsList.add(viewRow).row();
        }
    }

    content.add(viewsList).row();
    content.add(new Tile("ui-creature-info-line")).size(100, 1).row();
    content.add(name).padBottom(0).padTop(-1).row();
    //        Tile line = new Tile("ui-creature-info-line");
    //        line.setColor(1, 1, 1, 0.5f);
    //        content.add(line).padBottom(0).padTop(4).size(50, 1).row();
    content.add(desc).size(130, 44).padTop(0).row();
    //        content.add(new Tile("ui-creature-info-line")).size(100, 1).row();
    content.add(buttons)/*.height(68)*/.row();

    if (l != null) {
        table.invalidate();
        table.validate();
        l.tap(null, 0, 0, 0, 0);
    }
    getStage().addActor(new Actor() {
        float x = -1;
        float y = -1;

        @Override
        public void act(float delta) {
            if (content.getWidth() != x || content.getHeight() != y) {
                x = content.getWidth();
                y = content.getHeight();
            }
        }
    });
}

From source file:de.bitbrain.craft.ui.elements.ElementConnector.java

License:Open Source License

private Actor addSpacing(String id) {
    Actor spacing = new Actor();
    spacing.setWidth(group.getWidth());//w w  w .j av a 2  s .  c  om
    spacing.setHeight(SPACING);
    spacings.put(id, spacing);
    return spacing;
}