2013-04-26 78 views
0

让我先从我无法在互联网上的任何地方找到Slick2d.jar文件进一步我的项目不一定总是会在2D,所以我宁愿使用slick-util,这是在lwjgl网站上推荐的。此外,我知道TrueTypeFont在slick2d贬值,但这是油滑UTIL绘制文本的唯一途径lwjgl和slick-util渲染文本

,所以我的代码有下面几行:

import java.awt.Font; 
import org.newdawn.slick.TrueTypeFont; 
import org.newdawn.slick.Color; 

...

Font awtFont = new Font("Times New Roman", Font.ITALIC, 24); 
font = new TrueTypeFont(awtFont, antiAlias); 

...

font.drawString(dim.width/4+10,0, Income, Color.yellow) 

...

由于我得到一个大的黄色块,我不知道如何解决它。 GL_TEXTURE_2D已经启用,我也做所有其他人提到的混合调用作为解决方案。

GL11.glEnable(GL11.GL_BLEND); 
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 

回答

0

您必须使用下载的Slick.jar文件。所有异常都会引发“SlickExcpetion”。如果你也看看图形方法,它说Font类型,但是,必须是org.newdawn.slick.Font。它不能与AWT一起使用。

我学会了使用Slick,你必须使用它所有的Slick组件;不是任何Java的。

1

最近的回答,但我在之前搜索TrueTypeFont解决方案时无法找到任何内容。

对我来说搞乱了什么(并使块而不是文本)在我的程序中调用/绘制正面和背面缓冲区出于各种其他原因。

GL11.glDrawBuffer(GL11.GL_FRONT_AND_BACK); 
drawOtherStuff(); 

无论出于何种原因,拉绳()如果我叫/(再次拉其他的东西之前,然后回到正面和背面)仅绘制后台缓冲显示细腻。

GL11.glDrawBuffer(GL11.GL_BACK); 
font.drawString(100, 50, "THE LIGHTWEIGHT JAVA GAMES LIBRARY", Color.yellow); 

不知道它为什么起作用。也不确定是否特定于我的问题,但希望它可以作为其他人的临时解决方案。

1

嗯,我离开评论2,所以@ Twister1002“Slick-Util使用内置AWT字体支持的Java来加载字体,所以一定要熟悉AWT的Font类,可以使用默认的内置java字体或加载外部ttf文件 Slick-Util库将转换AWT字体,以便它可以与OpenGL一起使用。字体通过slick的TrueTypeFont类存储和绘制。

并回答你的问题:http://ninjacave.com/slickutil3 这个例子适合我。 至于什么原因导致您的原始问题,我看不到您发布的任何内容(在您发布的少量代码中)会导致此类错误。