0

让我从我在互联网上的任何地方都找不到 Slick2d.jar 文件开始,此外,我的项目不一定总是 2d 的,所以我更喜欢使用 slick-util,因为在 lwjgl 网站上推荐使用它。此外,我知道 TrueTypeFont 在 slick2d 中已贬值,但这是在 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);
4

3 回答 3

1

迟到的答案,但是当我早些时候搜索 TrueTypeFont 解决方案时,我什么也找不到。

对我来说搞砸了(并制作块而不是文本)是在我的程序中出于各种其他原因调用/绘制前后缓冲区。

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

无论出于何种原因,如果我只调用/绘制后台缓冲区(然后在再次绘制其他内容之前返回前后),则 drawString() 显示正常。

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

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

于 2013-11-03T11:33:00.980 回答
1

好吧,我距离评论还有 2 分钟,所以 @Twister1002 “Slick-Util 使用 Java 内置的 AWT 字体支持来加载字体,所以一定要熟悉 AWT 的 Font 类。你可以使用默认的内置 Java 字体“

并回答你的问题: http: //ninjacave.com/slickutil3 这个例子对我来说很好。至于是什么导致了您最初的问题,我看不到您发布的任何内容(在您发布的少量代码中)会导致此类错误。

于 2014-02-12T07:18:11.680 回答
0

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

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

于 2013-05-25T00:15:28.310 回答