public ViewScroller(ViewController viewController) { this.viewController = viewController; stage = viewController.world.stage; root = viewController.root; hScrollEnabled = root.getWidth() > stage.getWidth() - LEFT - RIGHT; vScrollEnabled = root.getHeight() > stage.getHeight() - BOTTOM - TOP; minRootX = stage.getWidth() - RIGHT - root.getWidth(); maxRootX = LEFT; minRootY = stage.getHeight() - TOP - root.getHeight(); maxRootY = BOTTOM; stage.addListener(listener = new DragListener() { { setTapSquareSize(8); } @Override public void drag(InputEvent event, float x, float y, int pointer) { if (!enabled) return; if (!event.getTarget().isDescendantOf(root) && event.getTarget() != stage.getRoot()) return; if (hScrollEnabled) root.setX(MathUtils.clamp(root.getX() - getDeltaX(), minRootX, maxRootX)); if (vScrollEnabled) root.setY(MathUtils.clamp(root.getY() - getDeltaY(), minRootY, maxRootY)); } }); }
/** Removes all targets and sources. */ public void clear() { targets.clear(); for (Entry<Source, DragListener> entry : sourceListeners.entries()) { entry.key.actor.removeCaptureListener(entry.value); } sourceListeners.clear(); }
/** Removes all targets and sources. */ public void clear () { targets.clear(); for (Entry<Source, DragListener> entry : sourceListeners.entries()) entry.key.getActor().removeCaptureListener(entry.value); sourceListeners.clear(); }
@Override public void build(Group group) { WorldMap world = MapGenerator.generateMap(4, 14, 7, 4); map = new DrawableMap(world, 0.4f); table = new VisTable(); table.add(map); group.addActor(table); group.addListener(new DragListener() { @Override public void drag(InputEvent event, float x, float y, int pointer) { float dragDistanceX = -1*getDeltaX() / map.getScale(); float dragDistanceY = -1*getDeltaY() / map.getScale(); float posX = map.getX(); float posY = map.getY(); float maxWidth = map.getFrame().width / map.getScale(); float maxHeight = map.getFrame().height / map.getScale(); float textureWidth = map.getWidth(); float textureHeight = map.getHeight(); float newPosY = posY + dragDistanceY; if (map.getVerticalMapSize() == MapSize.SMALLER_THAN_VIEWPORT) { if (newPosY < 0) newPosY = 0; if (newPosY > maxHeight - textureHeight) newPosY = maxHeight - textureHeight; map.setY(newPosY); } else if (map.getVerticalMapSize() == MapSize.BIGGER_THAN_VIEWPORT) { if (newPosY > 0) newPosY = 0; if (newPosY < maxHeight - textureHeight) newPosY = maxHeight - textureHeight; map.setY(newPosY); } float newPosX = posX + dragDistanceX; if (map.getHorizontalMapSize() == MapSize.SMALLER_THAN_VIEWPORT) { if (newPosX < 0) newPosX = 0; if (newPosX > maxWidth - textureWidth) newPosX = maxWidth - textureWidth; map.setX(newPosX); } else if (map.getHorizontalMapSize() == MapSize.BIGGER_THAN_VIEWPORT) { if (newPosX > 0) newPosX = 0; if (newPosX < maxWidth - textureWidth) newPosX = maxWidth - textureWidth; map.setX(newPosX); } } }); }
public void removeSource(Source source) { DragListener dragListener = sourceListeners.remove(source); source.actor.removeCaptureListener(dragListener); }
public void removeSource (Source source) { DragListener dragListener = sourceListeners.remove(source); source.getActor().removeCaptureListener(dragListener); }