2

我正在用字体编写游戏,但遇到了问题。即使我尝试了一切,我也不知道如何使用字体。你能解释一下什么是字形吗?如果需要,从哪里获取 .fnt 文件?

4

2 回答 2

3

很多东西要么不再使用,要么不再需要。基本上你只需要一个Graphics实例,并使用类似于drawString方法的东西。您还可以在Graphics对象上使用setFont来设置要用于渲染的字体。

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

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例如,字母在给定字体中的外观是该字母的字体字形。大写和小写 ( aor A) 有不同的字形,这就是使大写和小写字母在字体中出现不同的原因。

于 2012-03-15T14:11:31.813 回答
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);
于 2012-09-02T18:31:56.600 回答