Example usage for com.badlogic.gdx.math Vector2 Vector2

List of usage examples for com.badlogic.gdx.math Vector2 Vector2

Introduction

In this page you can find the example usage for com.badlogic.gdx.math Vector2 Vector2.

Prototype

public Vector2(float x, float y) 

Source Link

Document

Constructs a vector with the given components

Usage

From source file:com.bladecoder.engine.ui.retro.RetroSceneScreen.java

License:Apache License

private void sceneClick(int button) {
    World w = World.getInstance();/*from  w  w  w . ja  v  a 2  s.  c  om*/

    w.getSceneCamera().getInputUnProject(worldViewport, unprojectTmp);

    Scene s = w.getCurrentScene();

    if (currentActor != null) {

        if (EngineLogger.debugMode()) {
            EngineLogger.debug(currentActor.toString());
        }

        actorClick(currentActor, button);
    } else if (s.getPlayer() != null) {
        if (s.getPlayer().getVerb("goto") != null) {
            runVerb(s.getPlayer(), "goto", null);
        } else {
            Vector2 pos = new Vector2(unprojectTmp.x, unprojectTmp.y);

            if (recorder.isRecording()) {
                recorder.add(pos);
            }

            s.getPlayer().goTo(pos, null);
        }
    }
}

From source file:com.bladecoder.engineeditor.model.ChapterDocument.java

License:Apache License

public Element createWalkZone(Element scn, Polygon poly) {
    Element e = doc.createElement(XMLConstants.WALK_ZONE_TAG);
    e.setAttribute(XMLConstants.POLYGON_ATTR, Param.toStringParam(poly));
    e.setAttribute(XMLConstants.POS_ATTR, Param.toStringParam(new Vector2(poly.getX(), poly.getY())));

    scn.appendChild(e);//from ww w .  j  a  v  a2  s.  c om

    modified = true;
    firePropertyChange(XMLConstants.WALK_ZONE_TAG, e);

    return e;
}

From source file:com.bladecoder.engineeditor.model.ChapterDocument.java

License:Apache License

public void setWalkZonePolygon(Element scn, Polygon poly) {
    Element e = getWalkZone(scn);

    if (e == null)
        e = createWalkZone(scn, poly);//from w w  w. j a va 2 s.com
    else {
        e.setAttribute(XMLConstants.POLYGON_ATTR, Param.toStringParam(poly));
        e.setAttribute(XMLConstants.POS_ATTR, Param.toStringParam(new Vector2(poly.getX(), poly.getY())));
    }

    modified = true;
    firePropertyChange(XMLConstants.WALK_ZONE_TAG, e);

}

From source file:com.bladecoder.engineeditor.model.ChapterDocument.java

License:Apache License

public Element createObstacle(Element scn, Polygon poly) {
    Element e = doc.createElement(XMLConstants.OBSTACLE_ATTR);
    e.setAttribute(XMLConstants.POLYGON_ATTR, Param.toStringParam(poly));
    e.setAttribute(XMLConstants.POS_ATTR, Param.toStringParam(new Vector2(poly.getX(), poly.getY())));

    getWalkZone(scn).appendChild(e);//from   w  w  w .  j  ava 2s . co m

    modified = true;
    firePropertyChange(XMLConstants.OBSTACLE_ATTR, e);

    return e;
}

From source file:com.bladecoder.engineeditor.model.ChapterDocument.java

License:Apache License

public void setObstaclePolygon(Element scn, int i, Polygon poly) {
    Element e = getObstacle(scn, i);

    if (e == null)
        return;/*w  w  w . ja v  a  2  s. c  o  m*/

    e.setAttribute(XMLConstants.POLYGON_ATTR, Param.toStringParam(poly));
    e.setAttribute(XMLConstants.POS_ATTR, Param.toStringParam(new Vector2(poly.getX(), poly.getY())));

    modified = true;
    firePropertyChange(XMLConstants.OBSTACLE_ATTR, e);
}

From source file:com.bladecoder.engineeditor.scneditor.AnimationWidget.java

License:Apache License

public void setSource(String type, AnimationDesc anim) {
    fa = anim;//from   w w w.ja  v a 2  s . com

    if (renderer != null) {
        renderer.dispose();
        renderer = null;
    }

    if (type.equals(Project.S3D_RENDERER_STRING)) {
        renderer = new Sprite3DRenderer();
        ((Sprite3DRenderer) renderer)
                .setSpriteSize(new Vector2(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()));
    } else if (type.equals(Project.SPINE_RENDERER_STRING)) {
        renderer = new SpineRenderer();
        ((SpineRenderer) renderer).enableEvents(false);
    } else if (type.equals(Project.IMAGE_RENDERER_STRING)) {
        renderer = new ImageRenderer();
    } else {
        renderer = new AtlasRenderer();
    }

    renderer.loadAssets();
    EngineAssetManager.getInstance().finishLoading();
    renderer.retrieveAssets();
}

From source file:com.bladecoder.engineeditor.scneditor.ScnWidget.java

License:Apache License

@Override
public void draw(Batch batch, float parentAlpha) {
    validate();//from  ww w.  j a  v a 2s.  c om

    Color tmp = batch.getColor();
    batch.setColor(Color.WHITE);

    if (scn != null && !loading && !loadingError) {
        // BACKGROUND
        batch.disableBlending();
        tile.draw(batch, getX(), getY(), getWidth(), getHeight());
        batch.enableBlending();

        Vector3 v = new Vector3(getX(), getY(), 0);
        v = v.prj(batch.getTransformMatrix());

        batch.end();

        HdpiUtils.glViewport((int) v.x, (int) v.y, (int) getWidth(), (int) (getHeight()));

        getStage().calculateScissors(bounds, scissors);

        if (ScissorStack.pushScissors(scissors)) {
            // WORLD CAMERA
            sceneBatch.setProjectionMatrix(camera.combined);
            sceneBatch.begin();

            Array<AtlasRegion> scnBackground = scn.getBackground();

            if (scnBackground != null) {
                sceneBatch.disableBlending();

                float x = 0;

                for (AtlasRegion tile : scnBackground) {
                    sceneBatch.draw(tile, x, 0f);
                    x += tile.getRegionWidth();
                }

                sceneBatch.enableBlending();
            }

            // draw layers from bottom to top
            List<SceneLayer> layers = scn.getLayers();
            for (int i = layers.size() - 1; i >= 0; i--) {
                SceneLayer layer = layers.get(i);

                if (!layer.isVisible())
                    continue;

                List<InteractiveActor> actors = layer.getActors();

                for (InteractiveActor a : actors) {
                    if (a instanceof SpriteActor) {
                        boolean visibility = a.isVisible();
                        a.setVisible(true);
                        ((SpriteActor) a).draw(sceneBatch);
                        a.setVisible(visibility);
                    }
                }
            }

            sceneBatch.end();
            ScissorStack.popScissors();
        }

        drawer.drawBGBounds();

        if (showWalkZone && scn.getPolygonalNavGraph() != null) {
            drawer.drawBBoxWalkZone(scn, false);

            drawer.drawPolygonVertices(scn.getPolygonalNavGraph().getWalkZone(), Color.GREEN);
        }

        drawer.drawBBoxActors(scn);

        if (selectedActor != null) {
            drawer.drawSelectedActor(selectedActor);
        }

        getStage().getViewport().apply();

        // SCREEN CAMERA
        batch.begin();

        drawFakeDepthMarkers((SpriteBatch) batch);

        if (!inScene) {
            faRenderer.draw((SpriteBatch) batch);
        }

        // DRAW COORDS
        Vector2 coords = new Vector2(Gdx.input.getX(), Gdx.input.getY());
        screenToWorldCoords(coords);
        String str = MessageFormat.format("({0}, {1})", (int) coords.x, (int) coords.y);

        textLayout.setText(defaultFont, str);

        RectangleRenderer.draw((SpriteBatch) batch, 0f, getY() + getHeight() - textLayout.height - 15,
                textLayout.width + 10, textLayout.height + 10, BLACK_TRANSPARENT);
        defaultFont.draw(batch, textLayout, 5, getHeight() + getY() - 10);

        batch.setColor(tmp);

    } else {
        background.draw(batch, getX(), getY(), getWidth(), getHeight());

        String s;

        if (loading) {
            s = "LOADING...";

            try {
                if (!EngineAssetManager.getInstance().isLoading()) {
                    loading = false;

                    scn.retrieveAssets();

                    drawer.setCamera(camera);

                    invalidate();
                }
            } catch (Exception e) {
                Message.showMsg(getStage(), "Could not load assets for scene", 4);
                e.printStackTrace();
                loadingError = true;
                loading = false;
            }

        } else if (loadingError) {
            s = "ERROR IN SCENE DATA. CANNOT DISPLAY SCENE";
        } else if (Ctx.project.getProjectDir() == null) {
            s = "CREATE OR LOAD A PROJECT";
        } else {
            s = "THERE ARE NO SCENES IN THIS CHAPTER YET";
        }

        textLayout.setText(bigFont, s);

        bigFont.draw(batch, textLayout, (getWidth() - textLayout.width) / 2,
                getHeight() / 2 + bigFont.getLineHeight() * 3);

    }

}

From source file:com.bladecoder.engineeditor.scneditor.ScnWidget.java

License:Apache License

public void setSelectedScene(Scene s) {
    if (scn != null) {
        scn.dispose();/*ww w.java  2  s.  c  om*/
        faRenderer.dispose();
        scn = null;

        EngineAssetManager.getInstance().clear();
    }

    loadingError = false;

    setSelectedActor(null);

    if (s != null) {
        scn = s;

        scn.loadAssets();
        loading = true;
    }

    // SETS WORLD CAMERA
    if (scn != null) {

        float aspect = getWidth() / getHeight();

        float wWidth = World.getInstance().getWidth();
        float wHeight = World.getInstance().getHeight();
        float aspectWorld = wWidth / wHeight;

        if (aspectWorld > aspect) {
            wHeight = wWidth / aspect;
        } else {
            wWidth = wHeight * aspect;
        }

        zoomLevel = 100;

        camera.setToOrtho(false, wWidth, wHeight);
        camera.zoom = 1f;
        camera.update();

        // translate(new Vector2((-getWidth() + wWidth ) / 2 *
        // camera.zoom,
        // (-getHeight() + wHeight) / 2 * camera.zoom));

        translate(new Vector2(0, (-getHeight() + wHeight) / 2));
    }
}

From source file:com.bladecoder.engineeditor.scneditor.ScnWidgetInputListener.java

License:Apache License

@Override
public void clicked(InputEvent event, float x, float y) {
    Scene scn = scnWidget.getScene();// w  ww.jav  a2  s .c om
    if (scn == null)
        return;

    Vector2 p = new Vector2(Gdx.input.getX(), Gdx.input.getY());
    scnWidget.screenToWorldCoords(p);

    // DOUBLE CLICK TO CREATE OR DELETE POINTS
    if (getTapCount() == 2) {
        // Check WALKZONE
        if (scn.getPolygonalNavGraph() != null && scnWidget.getShowWalkZone()) {
            Polygon poly = scn.getPolygonalNavGraph().getWalkZone();

            if (UIUtils.ctrl()) {
                // Delete the point if selected
                boolean deleted = PolygonUtils.deletePoint(poly, p.x, p.y, CanvasDrawer.CORNER_DIST);

                if (deleted) {
                    Ctx.project.setModified();
                    return;
                }

            } else {

                boolean created = PolygonUtils.addClampPointIfTolerance(poly, p.x, p.y,
                        CanvasDrawer.CORNER_DIST);

                if (created) {
                    Ctx.project.setModified();
                    return;
                }
            }
        }

        if (scnWidget.getSelectedActor() != null) {

            Polygon poly = scnWidget.getSelectedActor().getBBox();

            if ((!(scnWidget.getSelectedActor() instanceof SpriteActor)
                    || !((SpriteActor) scnWidget.getSelectedActor()).isBboxFromRenderer())
                    && !(scnWidget.getSelectedActor() instanceof AnchorActor)) {
                if (UIUtils.ctrl()) {

                    // Delete the point if selected
                    boolean deleted = PolygonUtils.deletePoint(poly, p.x, p.y, CanvasDrawer.CORNER_DIST);

                    if (deleted) {
                        Ctx.project.setModified();
                        return;
                    }
                } else {
                    boolean created = PolygonUtils.addClampPointIfTolerance(poly, p.x, p.y,
                            CanvasDrawer.CORNER_DIST);

                    if (created) {
                        Ctx.project.setModified();
                        return;
                    }
                }
            }
        }
    }
}

From source file:com.bladecoder.engineeditor.scneditor.ScnWidgetInputListener.java

License:Apache License

@Override
public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {

    super.touchDown(event, x, y, pointer, button);
    //      EditorLogger.debug("Touch Down - X: " + x + " Y: " + y);

    Scene scn = scnWidget.getScene();//from  ww  w.  j  a  v  a 2  s .c om
    if (scn == null)
        return false;

    Vector2 p = new Vector2(Gdx.input.getX(), Gdx.input.getY());
    scnWidget.screenToWorldCoords(p);
    org.set(p);

    if (button == Buttons.LEFT) {
        selActor = scnWidget.getSelectedActor();

        if (scn.getPolygonalNavGraph() != null && scnWidget.getShowWalkZone()) { // Check
            // WALKZONE

            // CHECK WALKZONE VERTEXS
            Polygon wzPoly = scn.getPolygonalNavGraph().getWalkZone();
            float verts[] = wzPoly.getTransformedVertices();

            for (int i = 0; i < verts.length; i += 2) {
                if (p.dst(verts[i], verts[i + 1]) < CanvasDrawer.CORNER_DIST) {
                    draggingMode = DraggingModes.DRAGGING_WALKZONE_POINT;
                    vertIndex = i;
                    return true;
                }
            }

            // CHECK FOR WALKZONE DRAGGING
            if (wzPoly.contains(p.x, p.y)) {
                draggingMode = DraggingModes.DRAGGING_WALKZONE;
                undoOrg.set(wzPoly.getX(), wzPoly.getY());
                return true;
            }

        }

        // SELACTOR VERTEXs DRAGGING
        if (selActor != null
                && (!(selActor instanceof SpriteActor) || !((SpriteActor) selActor).isBboxFromRenderer())
                && !(scnWidget.getSelectedActor() instanceof AnchorActor)) {

            Polygon bbox = selActor.getBBox();
            float verts[] = bbox.getTransformedVertices();
            for (int i = 0; i < verts.length; i += 2) {
                if (p.dst(verts[i], verts[i + 1]) < CanvasDrawer.CORNER_DIST) {
                    draggingMode = DraggingModes.DRAGGING_BBOX_POINT;
                    vertIndex = i;
                    return true;
                }
            }
        }

        BaseActor a = scn.getActorAt(p.x, p.y); // CHECK FOR ACTORS

        if (a != null && a != selActor) {
            selActor = a;
            BaseActor da = Ctx.project.getActor(selActor.getId());
            Ctx.project.setSelectedActor(da);
        }

        if (a != null) {
            draggingMode = DraggingModes.DRAGGING_ACTOR;
            undoOrg.set(selActor.getX(), selActor.getY());
            return true;
        }

        // CHECK FOR DRAGGING DEPTH MARKERS
        Vector2 depthVector = scnWidget.getScene().getDepthVector();
        if (depthVector != null) {
            p.set(0, depthVector.x);
            scnWidget.worldToScreenCoords(p);
            if (Vector2.dst(p.x - 40, p.y, x, y) < 50) {
                draggingMode = DraggingModes.DRAGGING_MARKER_0;
                return true;
            }

            p.set(0, depthVector.y);
            scnWidget.worldToScreenCoords(p);
            if (Vector2.dst(p.x - 40, p.y, x, y) < 50) {
                draggingMode = DraggingModes.DRAGGING_MARKER_100;
                return true;
            }
        }

    }

    return true;
}