List of usage examples for com.badlogic.gdx.math Vector2 Vector2
public Vector2(float x, float y)
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; }