/** Returns the distance from the y drawing location to the top most pixel of the specified text. */ public int getYOffset (String text) { if (text == null) throw new IllegalArgumentException("text cannot be null."); if (renderType == RenderType.FreeType && bitmapFont != null) return (int)bitmapFont.getAscent(); int index = text.indexOf('\n'); if (index != -1) text = text.substring(0, index); char[] chars = text.toCharArray(); GlyphVector vector = font.layoutGlyphVector(GlyphPage.renderContext, chars, 0, chars.length, Font.LAYOUT_LEFT_TO_RIGHT); int yOffset = ascent + vector.getPixelBounds(null, 0, 0).y; return yOffset; }
/** Returns the distance from the y drawing location to the top most pixel of the specified text. */ public int getYOffset (String text) { if (text == null) throw new IllegalArgumentException("text cannot be null."); if (renderType == RenderType.FreeType && bitmapFont != null) return (int)bitmapFont.getAscent(); int index = text.indexOf('\n'); if (index != -1) text = text.substring(0, index); char[] chars = text.toCharArray(); GlyphVector vector = font.layoutGlyphVector(GlyphPage.renderContext, chars, 0, chars.length, Font.LAYOUT_LEFT_TO_RIGHT); int yOffset = ascent + vector.getPixelBounds(null, 0, 0).y; return yOffset; }
BitmapFontWriter.writePixmaps(param.packer.getPages(), Gdx.files.local(""), "bitmapWrittenFont"); final float ascent = generatedFont.getAscent(); final float descent = generatedFont.getDescent(); final float capHeight = generatedFont.getCapHeight(); final float loadedFontascent = loadedFont.getAscent(); final float loadedFontdescent = loadedFont.getDescent(); final float loadedFontcapHeight = loadedFont.getCapHeight();
private void renderFontWithMetrics (BitmapFont font, String text, float x, float y) { float alignmentWidth; spriteBatch.begin(); GlyphLayout layout = font.draw(spriteBatch, text, x, y); spriteBatch.end(); renderer.begin(ShapeRenderer.ShapeType.Filled); renderer.setColor(Color.BLACK); renderer.rect(x - 3, y - 3, 6, 6); renderer.end(); float baseline = y - font.getCapHeight(); renderer.begin(ShapeRenderer.ShapeType.Line); renderer.setColor(Color.LIGHT_GRAY); renderer.line(0, y, 9999, y); renderer.setColor(Color.MAGENTA); renderer.line(0, baseline, 9999, baseline); renderer.setColor(Color.GREEN); renderer.line(0, baseline + font.getXHeight(), 9999, baseline + font.getXHeight()); renderer.setColor(Color.CYAN); renderer.line(0, y + font.getAscent(), 9999, y + font.getAscent()); renderer.setColor(Color.RED); renderer.line(0, baseline + font.getDescent(), 9999, baseline + font.getDescent()); renderer.setColor(Color.ORANGE); renderer.line(0, y - font.getLineHeight(), 9999, y - font.getLineHeight()); renderer.end(); renderer.begin(ShapeRenderer.ShapeType.Line); renderer.setColor(Color.BLUE); renderer.rect(x, y, layout.width, -layout.height); renderer.end(); }
/** Returns the distance from the y drawing location to the top most pixel of the specified text. */ public int getYOffset (String text) { if (text == null) throw new IllegalArgumentException("text cannot be null."); if (renderType == RenderType.FreeType && bitmapFont != null) return (int)bitmapFont.getAscent(); int index = text.indexOf('\n'); if (index != -1) text = text.substring(0, index); char[] chars = text.toCharArray(); GlyphVector vector = font.layoutGlyphVector(GlyphPage.renderContext, chars, 0, chars.length, Font.LAYOUT_LEFT_TO_RIGHT); int yOffset = ascent + vector.getPixelBounds(null, 0, 0).y; return yOffset; }
@Override public void create() { camera = new OrthographicCamera(); camera.position.set(VIRTUAL_WIDTH * 0.5f, VIRTUAL_HEIGHT * 0.5f, 0.0f); viewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, camera); batch = new SpriteBatch(); font = new BitmapFont(Gdx.files.internal("data/fonts/play.fnt")); font.setColor(Color.WHITE); System.out.println("================"); System.out.println("Font information"); System.out.println("================"); System.out.println("Ascent: " + font.getAscent()); System.out.println("Descent: " + font.getDescent()); System.out.println("Cap height: " + font.getCapHeight()); System.out.println("Line height: " + font.getLineHeight()); System.out.println("Space width: " + font.getSpaceWidth()); }