2013-04-26 65 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 這個例子適合我。 至於什麼原因導致您的原始問題,我看不到您發佈的任何內容(在您發佈的少量代碼中)會導致此類錯誤。