2012-03-14 47 views
2

我正在编写一个字体的游戏,我遇到了一个问题。 我不知道如何使用字体,即使我尝试了一切。 你也可以解释什么是字形? 如果需要的话,在哪里获得.fnt文件?Slick2D - 如何使用字体

+0

参见[这](http://stackoverflow.com/questions/10157346/slick2d-fonts-dont-work),了解活动AngelCodeFont答案类 – 2012-04-21 22:26:14

回答

3

很多东西不再使用,或者不再需要。基本上所有你需要的是一个Graphics的实例,并使用像drawString方法。您还可以使用Graphics对象上的setFont来设置要用于渲染的字体。

您可以从GameContainer中获得一个Graphics实例,然后对其进行渲染。如果你想看到一个例子,我在github上的项目中的render方法this file有一些在其中显示调试信息到屏幕(fps,内存使用情况等)的行。代码的相关部分是:

if (ConfigValues.renderSystemInfo) { 
    g.setColor(new Color(50, 50, 50, 180)); 
    g.fillRect(0, 0, 300, 70); 
    g.setColor(Color.white); 
    g.drawString("MEM total(used): " + (Runtime.getRuntime().totalMemory()/1000000) + "(" + ((Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())/1000000) + ") MB", 10, 25); 
    g.drawString("Ped. history size: " + (peds.size()*peds.get(0).getMovementHistory().size()) + " nodes", 10, 40); 
} 

只是为了参考,字形,至少在概念上,只是在字体字符的视觉表示。因此,字母a在给定字体中查找的方式例如是该字母的字体字形。大写和小写字母有不同的字形(aA),这就是字体中大写字母和小写字母显示不同的原因。

2
Font font = new Font('Verdana', Font.BOLD, 32); 
TrueTypeFont ttf = new TrueTypeFont(font, true); 

在您更新方法:

ttf.drawString(32.0f, 32.0f, "Your words here", Color.green);