我正在使用一些openGL库在Java中构建一个游戏。我几乎完成了申请,但我有一些非常可笑的问题。我需要做的就是将文本的默认颜色更改为其他颜色,在我的例子中是黑色。
整整一个多小时,我试着做这个,每次我开始一个游戏,整个窗口都会变成那个颜色…我把代码放在那里,如果你们中有任何人有什么想法,我想考虑一下。
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);
}
}
然后我会在某个地方进一步调用这个update方法。让我不要忘了提一下,如果省略drawString()方法的4.参数,一切都可以正常工作,但是屏幕上显示的是白色文本。
再一次,如果有人能帮上忙,我将不胜感激。也许你们中的一些人会将我的问题标记为重复,但技术上不是,有人有类似的问题,但在他的情况下,他只是导入了错误的包。下面是类似问题的链接
发布于 2018-06-08 04:06:19
您正在使用当前颜色绘制框架,在本例中,框架中的所有内容都使用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();
}
https://stackoverflow.com/questions/50744973
复制相似问题