Java tutorial
/* * Copyright: * This file was created by BinaryTENSHi and distributed * as part of NoPassing. * * NoPassing lies under a license which can be * found in the LICENSE file in the root directory * File created @ [14.03.2014, 13:24:08 CH timezone] */ package com.binarytenshi.nopassing.core; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.math.Vector2; import com.binarytenshi.nopassing.lib.TextureLib; import java.util.ArrayList; public abstract class SplineHandler { private static ShapeRenderer shaper = new ShapeRenderer(); private static Spline currentSpline = null; private static ArrayList<Spline> splines = new ArrayList<Spline>(); public static void beginSpline() { currentSpline = new Spline(); } public static Spline endSpline() { splines.add(currentSpline); currentSpline = null; return splines.get(splines.size() - 1); } public static void addPoint(Vector2 v) { currentSpline.addPoint(v); } public static boolean hasSpline() { return currentSpline != null; } public static void drawSplines() { shaper.setProjectionMatrix(CameraHandler.getCamera().combined); shaper.setColor(Color.GRAY); for (Spline spline : splines) { drawSpline(spline); } shaper.setColor(Color.BLACK); if (currentSpline != null) { drawSpline(currentSpline); } } private static void drawSpline(Spline spline) { shaper.begin(ShapeRenderer.ShapeType.Line); ArrayList<Vector2> points = spline.getPoints(); int len = points.size(); for (int i = 0; i < len - 1; i++) { Vector2 vec1 = points.get(i); Vector2 vec2 = points.get(i + 1); shaper.line(vec1.x * TextureLib.tileSide + 32, vec1.y * TextureLib.tileSide + 32, vec2.x * TextureLib.tileSide + 32, vec2.y * TextureLib.tileSide + 32); } shaper.end(); } }