Example usage for com.badlogic.gdx.scenes.scene2d.utils ActorGestureListener ActorGestureListener

List of usage examples for com.badlogic.gdx.scenes.scene2d.utils ActorGestureListener ActorGestureListener

Introduction

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

Prototype

public ActorGestureListener() 

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();/*from w  w w  .j  a  va 2s .  c  om*/

    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.anstrat.gui.SnapScrollPane.java

License:Apache License

/** @param widget May be null. */
public SnapScrollPane(Actor widget, SnapScrollPaneStyle style) {
    if (style == null)
        throw new IllegalArgumentException("style cannot be null.");
    this.widget = widget;
    this.style = style;
    if (widget != null) {
        setWidget(widget);/*from  w  w w.  ja  v a2 s .co  m*/
    }
    setWidth(150);
    setHeight(150);

    addCaptureListener(new InputListener() {
        private float handlePosition;
        private int draggingPointer = -1;

        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            if (draggingPointer != -1)
                return false;
            if (pointer == 0 && button != 0)
                return false;
            getStage().setScrollFocus(SnapScrollPane.this);

            if (!flickScroll)
                resetFade();

            if (fadeAlpha == 0)
                return false;

            if (scrollX && hScrollBounds.contains(x, y)) {
                event.stop();
                resetFade();
                if (hKnobBounds.contains(x, y)) {
                    lastPoint.set(x, y);
                    handlePosition = hKnobBounds.x;
                    touchScrollH = true;
                    draggingPointer = pointer;
                    return true;
                }
                setScrollX(amountX + Math.max(areaWidth * 0.9f, maxX * 0.1f) * (x < hKnobBounds.x ? -1 : 1));
                return true;
            }
            if (scrollY && vScrollBounds.contains(x, y)) {
                event.stop();
                resetFade();
                if (vKnobBounds.contains(x, y)) {
                    lastPoint.set(x, y);
                    handlePosition = vKnobBounds.y;
                    touchScrollV = true;
                    draggingPointer = pointer;
                    return true;
                }
                setScrollY(amountY + Math.max(areaHeight * 0.9f, maxY * 0.1f) * (y < vKnobBounds.y ? 1 : -1));
                return true;
            }
            return false;
        }

        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
            if (pointer != draggingPointer)
                return;
            draggingPointer = -1;
            touchScrollH = false;
            touchScrollV = false;
        }

        public void touchDragged(InputEvent event, float x, float y, int pointer) {
            if (pointer != draggingPointer)
                return;
            if (touchScrollH) {
                float delta = x - lastPoint.x;
                float scrollH = handlePosition + delta;
                handlePosition = scrollH;
                scrollH = Math.max(hScrollBounds.x, scrollH);
                scrollH = Math.min(hScrollBounds.x + hScrollBounds.width - hKnobBounds.width, scrollH);
                setScrollPercentX((scrollH - hScrollBounds.x) / (hScrollBounds.width - hKnobBounds.width));
                lastPoint.set(x, y);
            } else if (touchScrollV) {
                float delta = y - lastPoint.y;
                float scrollV = handlePosition + delta;
                handlePosition = scrollV;
                scrollV = Math.max(vScrollBounds.y, scrollV);
                scrollV = Math.min(vScrollBounds.y + vScrollBounds.height - vKnobBounds.height, scrollV);
                setScrollPercentY(
                        1 - ((scrollV - vScrollBounds.y) / (vScrollBounds.height - vKnobBounds.height)));
                lastPoint.set(x, y);
            }
        }

        public boolean mouseMoved(InputEvent event, float x, float y) {
            if (!flickScroll)
                resetFade();
            return false;
        }
    });

    gestureListener = new ActorGestureListener() {
        public void pan(InputEvent event, float x, float y, float deltaX, float deltaY) {
            resetFade();
            amountX -= deltaX;
            amountY += deltaY;
            clamp();
            cancelTouchFocusedChild(event);
        }

        public void fling(InputEvent event, float x, float y, int button) {
            if (Math.abs(x) > 150) {
                flingTimer = flingTime;
                velocityX = x;
                cancelTouchFocusedChild(event);
            }
            if (Math.abs(y) > 150) {
                flingTimer = flingTime;
                velocityY = -y;
                cancelTouchFocusedChild(event);
            }
        }

        public boolean handle(Event event) {
            if (super.handle(event)) {
                if (((InputEvent) event).getType() == InputEvent.Type.touchDown)
                    flingTimer = 0;
                return true;
            }
            return false;
        }
    };
    addListener(gestureListener);

    addListener(new InputListener() {
        public boolean scrolled(InputEvent event, int amount) {
            resetFade();
            if (scrollY)
                setScrollY(amountY + Math.max(areaHeight * 0.9f, maxY * 0.1f) / 4 * amount);
            else if (scrollX) //
                setScrollX(amountX + Math.max(areaWidth * 0.9f, maxX * 0.1f) / 4 * amount);
            return true;
        }
    });
}

From source file:com.centergame.starttrack.graphics.actors.TabView.java

/**
 * @param names tab headers/*from   ww w  . j av a 2  s .com*/
 */
public TabView(String[] names) {

    this.headerHeight = StartTrackApp.dp2px(32);
    this.separatorHeight = StartTrackApp.dp2px(1);
    this.separatorPadding = StartTrackApp.dp2px(12);
    this.underlineHeight = StartTrackApp.dp2px(2);

    this.selectedTextColor = Color.valueOf("202020");
    this.unselectedTextColor = Color.valueOf("666666");
    this.separatorColor = Color.LIGHT_GRAY;
    this.underlineColor = Color.DARK_GRAY;

    this.tabIndex = -1;
    this.headers = new ArrayList<Text>();
    this.contents = new ArrayList<Group>();

    int i = 0;
    for (String name : names) {
        final int ii = i;
        LabelStyle s = StartTrackApp.getResources().getLabelStyle("tabs_header");
        s.fontColor = unselectedTextColor;
        Text t = new Text(name.toUpperCase(), s);
        t.setAlignment(Align.center);
        t.addListener(new ActorGestureListener() {
            public void tap(InputEvent event, float x, float y, int count, int button) {
                selectTab(ii);
            }
        });
        headers.add(t);
        addActor(t);

        Group g = new Group() {
            @Override
            public void addActor(Actor actor) {
                super.addActor(actor);
                this.setHeight(actor.getHeight());
                actor.setPosition(0, 0);
            }
        };
        g.setVisible(false);
        contents.add(g);
        addActor(g);

        i++;
    }

    this.separator = new IdpColorPixmap(separatorColor).buildActor();
    addActor(separator);

    this.underline = new IdpColorPixmap(underlineColor).buildActor();
    addActor(underline);

    setBackgroundColor(Color.valueOf("fafafa"));
    setBorder(StartTrackApp.dp2px(1), 0, StartTrackApp.dp2px(1), 0);
    setBorderColor(Color.LIGHT_GRAY);
    layout();
}

From source file:com.centergame.starttrack.graphics.starttrack_widgets.base.BinaryRadioGroup.java

private void addRadioButton(String icon, final int value, final Grade grade) {

    final ImageActor a = new ImageActor(StartTrackApp.getResources().getIcon(icon));
    final RadioButton rb = new RadioButton(a) {
        @Override//  ww  w .  j  ava 2s  . co m
        public void onSelected() {
            getIcon().setColor(
                    value == 1 ? StartTrackApp.ColorPallete.ICON_TICK : StartTrackApp.ColorPallete.ICON_CANCEL);
            grade.grade = value;
        }

        @Override
        public void onUnselected() {
            getIcon().setColor(StartTrackApp.ColorPallete.ELEMENT_BORDER);
            grade.grade = null;
        }
    };
    rb.getIcon().setColor(StartTrackApp.ColorPallete.ELEMENT_BORDER);

    rb.addListener(new ActorGestureListener() {
        @Override
        public void tap(InputEvent event, float x, float y, int count, int button) {
            if (rb == selected) {
                rb.unselect();
                selected = null;
                return;
            }

            if (selected != null)
                selected.unselect();
            rb.select();
            selected = rb;
        }
    });

    if (grade.grade != null && grade.grade == value) {
        rb.select();
        selected = rb;
    }

    addActor(rb);
}

From source file:com.centergame.starttrack.graphics.starttrack_widgets.base.RadioGroup.java

public RadioGroup(int min, int max, final com.centergame.starttrack.api.model.Report report) {

    paddingTop = 0;// w w w  .j  a v  a2 s  . c o m
    paddingBottom = 0;
    paddingLeft = 0;
    paddingRight = 0;

    for (int i = min; i <= max; i++) {
        final int ii = i;
        final RadioButton rb = new RadioButton(i + "") {
            @Override
            public void onSelected() {
                report.team_grade = ii;
            }

            @Override
            public void onUnselected() {
                report.team_grade = null;
            }
        };

        rb.addListener(new ActorGestureListener() {
            @Override
            public void tap(InputEvent event, float x, float y, int count, int button) {
                if (rb == selected)
                    return;
                if (selected != null)
                    selected.unselect();
                rb.select();
                selected = rb;
            }
        });

        if (report.team_grade != null && i == report.team_grade) {
            rb.select();
            selected = rb;
        }
        addActor(rb);
    }

    final RadioButton rb = new RadioButton(new ImageActor(StartTrackApp.getResources().getIcon("cancel")));
    rb.addListener(new ActorGestureListener() {
        @Override
        public void tap(InputEvent event, float x, float y, int count, int button) {
            if (selected != null)
                selected.unselect();
            selected = null;
            report.team_grade = null;
        }

    });
    addActor(rb);

    setJustified(true);
}

From source file:com.jumpbuttonstudios.vikingdodge.ui.popup.GameOverPopup.java

License:Apache License

@Override
public void registerListeners() {
    final GameScreenLayout gs = (GameScreenLayout) parent;
    playagain.addListener(new ActorGestureListener() {

        @Override/*from ww w.  ja  v a2s  .  c o  m*/
        public void tap(InputEvent event, float x, float y, int count, int button) {
            moveOut(1, false, Interpolation.exp10);
            gs.getOverlay().addAction(Actions.sequence(Actions.moveTo(0, 0, 1, Interpolation.bounceOut),
                    Actions.run(new Runnable() {
                        @Override
                        public void run() {
                            vikingDodge.setScreen(new GameScreen(vikingDodge));
                        }
                    }), Actions.moveTo(0, gs.getOverlay().getHeight(), 1, Interpolation.exp10)));
        }

    });

    mainmenu.addListener(new ClickListener() {

        @Override
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            VikingDodge.adListener.requestAd(AdListener.BOTTOM);
            fadeOverlay();
            moveOut(1, false);
            parent.notify(null, Event.CHANGED_TO_MENU);
            gs.returnToMenu();
            return false;
        }

    });
    ;

    highscores.addListener(new ActorGestureListener() {

        @Override
        public void tap(InputEvent event, float x, float y, int count, int button) {
            HighscoresPopup hsp = new HighscoresPopup(vikingDodge, parent);
            hsp.moveIn(1, Interpolation.elastic);
            gs.addActor(hsp);
        }

    });
}

From source file:com.jumpbuttonstudios.vikingdodge.ui.popup.HighscoresPopup.java

License:Apache License

public Table createTabButtons() {
    Table table = new Table();
    Button[] buttons = new Button[3];
    for (int x = 0; x < 3; x++) {
        buttons[x] = new Button(Assets.skin.get("emptyButton", ButtonStyle.class));
        buttons[x].setName("button" + x);
    }/*from  w  w  w.  j  a v a2 s . com*/
    buttons[0].addListener(new ActorGestureListener() {

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

            back.setPosition(background.getWidth() - (background.getWidth() / 3) + (back.getWidth() / 2),
                    backButtonPos.y);
            bringPanelToFront(personal);
        }
    });
    buttons[1].addListener(new ActorGestureListener() {

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

            back.setPosition(backButtonPos.x, backButtonPos.y);
            bringPanelToFront(global);
        }
    });
    buttons[2].addListener(new ActorGestureListener() {

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

            back.setPosition(backButtonPos.x, backButtonPos.y);
            bringPanelToFront(friends);
        }
    });
    for (Button button : buttons) {
        table.add(button);
    }

    table.setPosition(575, 625);
    return table;
}

From source file:com.jumpbuttonstudios.vikingdodge.ui.popup.HighscoresPopup.java

License:Apache License

@Override
public void registerListeners() {
    back.addListener(new ActorGestureListener() {

        @Override/* ww  w .j  av  a 2s.c  o  m*/
        public void tap(InputEvent event, float x, float y, int count, int button) {
            parent.notify(null, Event.BUTTON_PRESSED);
            moveOut(1, true);
        }

    });
}

From source file:com.jumpbuttonstudios.vikingdodge.ui.popup.LoginPopup.java

License:Apache License

@Override
public void registerListeners() {
    ok.addListener(new ActorGestureListener() {

        @Override//from w  w w.j  a va2 s .  com
        public void tap(InputEvent event, float x, float y, int count, int button) {
            parent.notify(null, Event.BUTTON_PRESSED);
            Network.login(username.getText(), password.getText());
            packetRecieved = true;

        }
    });

    register.addListener(new ActorGestureListener() {

        @Override
        public void tap(InputEvent event, float x, float y, int count, int button) {
            parent.notify(null, Event.BUTTON_PRESSED);
            Gdx.net.openURI(REGISTER_URL);
        }

    });
}

From source file:com.jumpbuttonstudios.vikingdodge.ui.popup.LogoutConfirmationPopup.java

License:Apache License

@Override
public void registerListeners() {
    ok.addListener(new ActorGestureListener() {

        @Override//from   w  w  w.jav  a2  s.  c  o m
        public void tap(InputEvent event, float x, float y, int count, int button) {
            new Thread(new Runnable() {

                @Override
                public void run() {
                    Network.logout();
                    ((MainMenuLayout) parent).getPlayerAvatarPopup().updateAvatar = true;
                    ((MainMenuLayout) parent).getPlayerAvatarPopup().setCanMoveBack(true);
                }
            }).start();

            moveOut(1, true);

            ((MainMenuLayout) parent).getLogin().setStyle(Assets.skin.get("login", ButtonStyle.class));

            PlayerAvatarPopup p = ((MainMenuLayout) parent).getPlayerAvatarPopup();
            p.moveOut(1, false);

        }
    });
}