@Override public Surface fillTriangles(float[] xys, int xysOffset, int xysLen, int[] indices, int indicesOffset, int indicesLen, int indexBase) { Path path = canvas.createPath(); for (int ii = indicesOffset, ll = ii+indicesLen; ii < ll; ii += 3) { int a = 2*(indices[ii ] - indexBase) + xysOffset; int b = 2*(indices[ii+1] - indexBase) + xysOffset; int c = 2*(indices[ii+2] - indexBase) + xysOffset; path.moveTo(xys[a], xys[a+1]); path.lineTo(xys[b], xys[b+1]); path.lineTo(xys[c], xys[c+1]); path.close(); } canvas.fillPath(path); return this; }
public void draw(Canvas canvas) { // draw a rounded rect with bezier curves Path path = canvas.createPath(); path.moveTo(10, 0); path.lineTo(90, 0); path.bezierTo(95, 0, 100, 5, 100, 10); path.lineTo(100, 90); path.bezierTo(100, 95, 95, 100, 90, 100); path.lineTo(10, 100); path.bezierTo(5, 100, 0, 95, 0, 90); path.lineTo(0, 10); path.bezierTo(0, 5, 5, 0, 10, 0); path.close(); canvas.setFillGradient(graphics().createLinearGradient( 0, 0, 100, 100, new int[] { 0xFF0000FF, 0xFF00FF00 }, new float[] { 0, 1 })); canvas.fillPath(path); } });
void replay(Path path) { path.reset(); x = (float) list.get(i++); y = (float) list.get(i++); path.moveTo(x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.lineTo(x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.quadraticCurveTo(cpx, cpy, x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.bezierTo(c1x, c1y, c2x, c2y, x, y); break; path.close(); break;
void replay(Path path) { path.reset(); x = (float) list.get(i++); y = (float) list.get(i++); path.moveTo(x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.lineTo(x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.quadraticCurveTo(cpx, cpy, x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.bezierTo(c1x, c1y, c2x, c2y, x, y); break; path.close(); break;
void replay(Path path) { path.reset(); x = (float) list.get(i++); y = (float) list.get(i++); path.moveTo(x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.lineTo(x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.quadraticCurveTo(cpx, cpy, x, y); break; x = (float) list.get(i++); y = (float) list.get(i++); path.bezierTo(c1x, c1y, c2x, c2y, x, y); break; path.close(); break;
@Override public void drawSolidPolygon(Vec2[] vertices, int vertexCount, Color3f color) { setFillColor(color); setStrokeColor(color); Path path = canvas.createPath(); for (int i = 0; i < vertexCount; i++) { getWorldToScreenToOut(vertices[i], tempVec1); if (i == 0) { path.moveTo(tempVec1.x, tempVec1.y); } else { path.lineTo(tempVec1.x, tempVec1.y); } } path.close(); canvas.fillPath(path); canvas.strokePath(path); }
path.moveTo(10, 0); path.lineTo(90, 0); path.bezierTo(95, 0, 100, 5, 100, 10); path.lineTo(100, 90); path.bezierTo(100, 95, 95, 100, 90, 100); path.lineTo(10, 100); path.bezierTo(5, 100, 0, 95, 0, 90); path.lineTo(0, 10); path.bezierTo(0, 5, 5, 0, 10, 0); path.close(); canvas.setFillGradient(linear).fillPath(path); });
@Override public void drawSolidPolygon(Vec2[] vertices, int vertexCount, Color3f color) { if (canvas == null) { log().error(CANVASERROR); return; } setFillColor(color); setStrokeColor(color); Path path = canvas.createPath(); for (int i = 0; i < vertexCount; i++) { getWorldToScreenToOut(vertices[i], tempVec1); if (i == 0) { path.moveTo(tempVec1.x, tempVec1.y); } else { path.lineTo(tempVec1.x, tempVec1.y); } } path.close(); canvas.fillPath(path); canvas.strokePath(path); }
protected Entity createShip (float x, float y) { Entity ship = create(true); ship.add(type, sprite, opos, pos, vel, spin, radius); Canvas canvas = graphics().createCanvas(30, 20); Path path = canvas.createPath(); path.moveTo(0, 0).lineTo(30, 10).lineTo(0, 20).close(); canvas.setFillColor(0xFFCC99FF).fillPath(path); ImageLayer layer = new ImageLayer(canvas.toTexture()); layer.setOrigin(15, 10); layer.setRotation(-MathUtil.HALF_PI); int id = ship.id; type.set(id, SHIP); sprite.set(id, layer); opos.set(id, x, y); pos.set(id, x, y); vel.set(id, 0, 0); radius.set(id, 10); return ship; }