【问题标题】:lwjgl and slick-util rendering textlwjgl 和 slick-util 渲染文本
【发布时间】:2013-04-26 03:58:43
【问题描述】:

让我从我在互联网上的任何地方都找不到 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);

【问题讨论】:

    标签: java opengl graphics lwjgl slick2d


    【解决方案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);
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2011-11-09
          • 1970-01-01
          • 2015-06-09
          • 1970-01-01
          • 2020-09-08
          • 1970-01-01
          • 1970-01-01
          • 2015-09-15
          • 1970-01-01
          相关资源
          最近更新 更多