在(java 游戏中使用 LWJGL 和 slick2D 绘制字符串无法正常工作

drawing Strings in the (java game using LWJGL and slick2D) is not working properly

我正在 Java 使用一些 openGL 库构建游戏。我几乎完成了申请,但我遇到了一些非常荒谬的问题。我需要做的就是将文本的默认颜色更改为其他颜色,在我的例子中是黑色。

整整一个多小时我都在尝试制作这个,每次我开始游戏时整个 window 都会变成那种颜色...我把代码放在那里,如果你们有的话我想考虑的想法。

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


public class GameMenu {

    private TrueTypeFont gameFont;
    private Font font;

    public GameMenu() {

    font = new Font("Times New Roman", Font.BOLD, 24);
    gameFont = new TrueTypeFont(font, false);

 }

    public void drawChangableText(int x, int y, String changableText) {
    gameFont.drawString(x, y, changableText, Color.black);
 }

    public void update() {
    drawChangableText(1330, 700, "Lives " + Player.lives);
    drawChangableText(1330, 750, "Gold " + Player.gold);
 }
}

然后我在某处进一步调用此更新方法。让我不要忘记提及,如果省略 drawString() 方法的 4. 参数,则一切正常,但屏幕上显示白色文本。

再一次,如果有人能提供帮助,我将不胜感激。也许你们中的一些人会将我的问题标记为重复,但从技术上讲它不是,有人遇到过类似的问题,但在他的情况下,他只是导入了错误的包。这是类似问题

的link

LWJGL Drawing colored text to the screen issue

您正在使用当前颜色绘制框架,在这种情况下,您对框架中的所有内容都使用 Color.black,而不仅仅是文本。

所以为了避免类似的事情,你可以这样做:

public void drawChangableText(int x, int y, String text) {
    //pick your color
    Color.black.bind();
    //do the job
    gameFont.drawString(x, y, text, Color.black);
    //reset the color
    Color.white.bind();
}