Copied from here: http://stackoverflow.com/questions/15733442/drawing-filled-polygon-with-libgdx Basically, you define a PolygonSpriteBatch using a PolygonSprite and a PolygonRegion: PolygonSprite poly; PolygonSpriteBatch polyBatch; Texture textureSolid; You then create them like this, giving the region a texture and the 4 corners coordinates (for the texture, you can load a plain solid colored texture, gray or red in your case): PolygonRegion polyReg = new PolygonRegion(new TextureRegion(textureSolid), new float[] { x1, y1, x2, y2, x3, y3, x4, y4 }); poly = new PolygonSprite(polyReg); poly.setOrigin(oX, oY); polyBatch = new PolygonSpriteBatch(); And draw it like this: polyBatch.begin(); poly.draw(polyBatch); polyBatch.end(); Hope I helped!