@Override public void init(GameContainer gc, StateBasedGame st) throws SlickException { // Lade Pixel Font try { font = Font.createFont(Font.TRUETYPE_FONT, new File("./resources/pixel.ttf")); } catch (FontFormatException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Große Pixel Font uniTitle = new UnicodeFont(font, 100, true, false); uniTitle.getEffects().add(new ColorEffect(java.awt.Color.orange)); uniTitle.addAsciiGlyphs(); uniTitle.loadGlyphs(); // Kleine Pixel Font uniNormal = new UnicodeFont(font, 30, true, false); uniNormal.getEffects().add(new ColorEffect(java.awt.Color.white)); uniNormal.addAsciiGlyphs(); uniNormal.loadGlyphs(); levelNames = new ArrayList<>(); playerNames = new ArrayList<>(); times = new ArrayList<>(); selection = new Rectangle(0, 0, 0, 40); }
@SuppressWarnings("unchecked") public GameOver(String text, int score, boolean victory) { this.text = text; this.score = score; this.victory = victory; font = new UnicodeFont(Database.instance().getDefaultFont().getFont(), 50, true, false); font.addAsciiGlyphs(); font.getEffects().add(new ColorEffect()); try { font.loadGlyphs(); } catch (SlickException e1) { e1.printStackTrace(); } nameInput = new TextField( GameCore.getInstance().getApp(), Database.instance().getDefaultFont(), 150, 20, 500, Database.instance().getDefaultFont().getLineHeight() + 20, new ComponentListener() { public void componentActivated(AbstractComponent source) { input = nameInput.getText(); } }); nameInput.setFocus(true); nameInput.setBorderColor(Color.black); nameInput.setText("Anonymous"); nameInput.setMaxLength(20); }
public Fuente(Font fuente, int tamano) throws SlickException { this.tamano = tamano; uFont = new UnicodeFont(fuente, this.tamano, this.italica, this.negrita); uFont.addAsciiGlyphs(); uFont.addGlyphs(400, 600); uFont.getEffects().add(new ColorEffect(this.color)); uFont.loadGlyphs(); cargado = true; }
public ConsoleGuiNewChat(Minecraft par1Minecraft) { this.mc = par1Minecraft; font = new UnicodeFont(new Font("Arial Bold", Font.TRUETYPE_FONT, 16)); font.addAsciiGlyphs(); font.getEffects().add(new ColorEffect(java.awt.Color.white)); try { font.loadGlyphs(); } catch (Exception e) { } }
public RendererText() { Font awtFont = new Font("Consola", Font.BOLD, 18); unicodeFont = new UnicodeFont(awtFont); unicodeFont.getEffects().add(new ColorEffect(java.awt.Color.white)); unicodeFont.addAsciiGlyphs(); try { unicodeFont.loadGlyphs(); } catch (SlickException e) { e.printStackTrace(); } }
public Fuente(String fuente, int tamano, boolean italica, boolean negrita, Color color) throws SlickException { this.tamano = tamano; this.italica = italica; this.negrita = negrita; this.color = color; uFont = new UnicodeFont(fuente, this.tamano, this.italica, this.negrita); uFont.addAsciiGlyphs(); uFont.addGlyphs(400, 600); uFont.getEffects().add(new ColorEffect(this.color)); uFont.loadGlyphs(); cargado = true; }
@Override public void init(GameContainer container, StateBasedGame game) throws SlickException { this.game = game; Font awtFont = new Font("SansSerif", Font.BOLD, 14); font = new UnicodeFont(awtFont); font.getEffects().add(new ShadowEffect(Color.black, 2, 2, 0.5f)); font.getEffects().add(new ColorEffect(Color.white)); font.addAsciiGlyphs(); font.loadGlyphs(); background = new Image("new-assets/background/background-no-shelf.png"); mouseOffsetX = (container.getWidth() - PlatformerGame.WIDTH) / 2; mouseOffsetY = (container.getHeight() - PlatformerGame.HEIGHT) / 2; }
@SuppressWarnings("unchecked") public Font loadFont(String filename, int size) { Font font; try { UnicodeFont unicodeFont = new UnicodeFont(filename, size, false, false); unicodeFont.addAsciiGlyphs(); unicodeFont.getEffects().add(new ColorEffect(java.awt.Color.WHITE)); unicodeFont.loadGlyphs(); font = unicodeFont; } catch (SlickException e) { font = container.getDefaultFont(); } catch (RuntimeException e) { font = container.getDefaultFont(); } return font; }
@Override public void init(GameContainer gc, StateBasedGame sbg) throws SlickException { this.bg = new Image("res/menu/backgroundLoad.jpg"); this.espace = new Image("res/score/espace.png"); this.score = new Image("res/score/score.png"); this.rubis = new Image("res/score/rubis.png"); this.saphirs = new Image("res/score/saphirs.png"); this.timing = new Image("res/score/timing.png"); this.point = new Image("res/score/points.png"); uFont = new UnicodeFont("res/score/police.ttf", 35, false, false); uFont.addAsciiGlyphs(); uFont.addGlyphs(400, 600); java.awt.Color color = new java.awt.Color(136, 213, 242); uFont.getEffects().add(new ColorEffect(color)); uFont.loadGlyphs(); }
@SuppressWarnings("unchecked") public static UnicodeFont getFontWithSize(int fontSize) { for (UnicodeFont f : fonts) { if (f.getFont().getSize() == fontSize) { return f; } } try { UnicodeFont newFont = new UnicodeFont("res/font/Tahoma.ttf", fontSize, false, false); newFont.addAsciiGlyphs(); newFont.getEffects().add(new ColorEffect()); newFont.loadGlyphs(); return newFont; } catch (SlickException e) { return null; } }
public void save(File outputBMFontFile) throws IOException, SlickException { File outputDir = outputBMFontFile.getParentFile(); String outputName = outputBMFontFile.getName(); if (outputName.endsWith(".fnt")) outputName = outputName.substring(0, outputName.length() - 4); unicodeFont.loadGlyphs(); PrintStream out = new PrintStream(new FileOutputStream(new File(outputDir, outputName + ".fnt"))); Font font = unicodeFont.getFont(); int pageWidth = unicodeFont.getGlyphPageWidth(); int pageHeight = unicodeFont.getGlyphPageHeight(); out.println( "info face=\"" + font.getFontName() + "\" size=" + font.getSize() + " bold=" + (font.isBold() ? 1 : 0) + " italic=" + (font.isItalic() ? 1 : 0) + " charset=\"\" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1"); out.println( "common lineHeight=" + unicodeFont.getLineHeight() + " base=26 scaleW=" + pageWidth + " scaleH=" + pageHeight + " pages=" + unicodeFont.getGlyphPages().size() + " packed=0"); int pageIndex = 0, glyphCount = 0; for (Iterator pageIter = unicodeFont.getGlyphPages().iterator(); pageIter.hasNext(); ) { GlyphPage page = (GlyphPage) pageIter.next(); String fileName; if (pageIndex == 0 && !pageIter.hasNext()) fileName = outputName + ".png"; else fileName = outputName + (pageIndex + 1) + ".png"; out.println("page id=" + pageIndex + " file=\"" + fileName + "\""); glyphCount += page.getGlyphs().size(); pageIndex++; } out.println("chars count=" + glyphCount); // Always output space entry (codepoint 32). int[] glyphMetrics = getGlyphMetrics(font, 32); int xAdvance = glyphMetrics[1]; out.println( "char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=" + unicodeFont.getAscent() + " xadvance=" + xAdvance + " page=0 chnl=0 "); pageIndex = 0; List allGlyphs = new ArrayList(512); for (Iterator pageIter = unicodeFont.getGlyphPages().iterator(); pageIter.hasNext(); ) { GlyphPage page = (GlyphPage) pageIter.next(); for (Iterator glyphIter = page.getGlyphs().iterator(); glyphIter.hasNext(); ) { Glyph glyph = (Glyph) glyphIter.next(); glyphMetrics = getGlyphMetrics(font, glyph.getCodePoint()); int xOffset = glyphMetrics[0]; xAdvance = glyphMetrics[1]; out.println( "char id=" + glyph.getCodePoint() + " " + "x=" + (int) (glyph.getImage().getTextureOffsetX() * pageWidth) + " y=" + (int) (glyph.getImage().getTextureOffsetY() * pageHeight) + " width=" + glyph.getWidth() + " height=" + glyph.getHeight() + " xoffset=" + xOffset + " yoffset=" + glyph.getYOffset() + " xadvance=" + xAdvance + " page=" + pageIndex + " chnl=0 "); } allGlyphs.addAll(page.getGlyphs()); pageIndex++; } String ttfFileRef = unicodeFont.getFontFile(); if (ttfFileRef == null) Log.warn( "Kerning information could not be output because a TTF font file was not specified."); else { Kerning kerning = new Kerning(); try { kerning.load(ResourceLoader.getResourceAsStream(ttfFileRef), font.getSize()); } catch (IOException ex) { Log.warn("Unable to read kerning information from font: " + ttfFileRef); } Map glyphCodeToCodePoint = new HashMap(); for (Iterator iter = allGlyphs.iterator(); iter.hasNext(); ) { Glyph glyph = (Glyph) iter.next(); glyphCodeToCodePoint.put( new Integer(getGlyphCode(font, glyph.getCodePoint())), new Integer(glyph.getCodePoint())); } List kernings = new ArrayList(256); class KerningPair { public int firstCodePoint, secondCodePoint, offset; } for (Iterator iter1 = allGlyphs.iterator(); iter1.hasNext(); ) { Glyph firstGlyph = (Glyph) iter1.next(); int firstGlyphCode = getGlyphCode(font, firstGlyph.getCodePoint()); int[] values = kerning.getValues(firstGlyphCode); if (values == null) continue; for (int i = 0; i < values.length; i++) { Integer secondCodePoint = (Integer) glyphCodeToCodePoint.get(new Integer(values[i] & 0xffff)); if (secondCodePoint == null) continue; // We may not be outputting the second character. int offset = values[i] >> 16; KerningPair pair = new KerningPair(); pair.firstCodePoint = firstGlyph.getCodePoint(); pair.secondCodePoint = secondCodePoint.intValue(); pair.offset = offset; kernings.add(pair); } } out.println("kernings count=" + kerning.getCount()); for (Iterator iter = kernings.iterator(); iter.hasNext(); ) { KerningPair pair = (KerningPair) iter.next(); out.println( "kerning first=" + pair.firstCodePoint + " second=" + pair.secondCodePoint + " amount=" + pair.offset); } } out.close(); pageIndex = 0; ImageIOWriter imageWriter = new ImageIOWriter(); for (Iterator pageIter = unicodeFont.getGlyphPages().iterator(); pageIter.hasNext(); ) { GlyphPage page = (GlyphPage) pageIter.next(); String fileName; if (pageIndex == 0 && !pageIter.hasNext()) fileName = outputName + ".png"; else fileName = outputName + (pageIndex + 1) + ".png"; File imageOutputFile = new File(outputDir, fileName); FileOutputStream imageOutput = new FileOutputStream(imageOutputFile); try { imageWriter.saveImage(page.getImage(), "png", imageOutput, true); } finally { imageOutput.close(); } // Flip output image. Image image = new ImageIcon(imageOutputFile.getAbsolutePath()).getImage(); BufferedImage bufferedImage = new BufferedImage( image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics g = bufferedImage.getGraphics(); g.drawImage(image, 0, 0, null); AffineTransform tx = AffineTransform.getScaleInstance(-1, 1); tx.translate(0, -image.getHeight(null)); AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR); bufferedImage = op.filter(bufferedImage, null); ImageIO.write(bufferedImage, "png", imageOutputFile); pageIndex++; } }