2011-12-01 45 views
1

我使用这个代码,这是剪断,并从油滑维基Unicode教程修改:如何在Slick的UnicodeFont类中使用自定义字体?

UnicodeFont menuFont = new UnicodeFont("/fonts/mailrays.ttf", 8, false, false); 

menuFont.addAsciiGlyphs(); 
menuFont.addGlyphs(400, 600); 
menuFont.getEffects().add(new ColorEffect()); 
menuFont.loadGlyphs(); 

menuFont.drawString(25.0f, -80.0f, "Snake", new Color(1.0f, 1.0f, 1.0f)); 

但当字符串在屏幕上绘制它采用了低分辨率控制台字体,我认为是默认。什么可以阻止字符串使用我传入构造函数(mailrays.tff)的字体?

回答

2

我知道这几乎是两个月大,但如果你还在寻找答案...

如果油滑无法找到您的字体,你会得到一个RuntimeException当您尝试实例字体。要验证这一点,请尝试指定您知道机器上不存在的字体的名称(例如,“crap.ttf”)...您很可能会看到类似于:

线程中的异常“main”java.lang.RuntimeException:Resource not found:crap.ttf at org.newdawn.slick.util.ResourceLoader.getResourceAsStream(ResourceLoader.java:69) at org.newdawn.slick.UnicodeFont.createFont(UnicodeFont。 java:61)

鉴于此,此处的问题可能是您正在创建的字体的大小。尝试创建8点字体会导致许多TTF字体的混乱,并且结果可能看起来像您所描述的低分辨率。要验证这一点,请尝试以更大的尺寸创建字体,大概12点左右。这显然会比你想要的大,但至少它会验证你正在加载正确的字体,并且问题只是缩放。如果是这样的话,你只需要找到一个在8点范围内更好的字体。

希望这会有所帮助!

+0

我最终只是映射文本的图像,而不是试图绘制字体,但是我打算在有空的时候对项目进行测试并验证。 感谢您的回答! –

相关问题