我呈现的文字显示为颠倒。我知道左下角是位置(0,0),我的整个代码都是基于此。我有一种感觉,我的文本被颠倒了是因为我使用java的awt字体类而不是newdawn.slick.Font
。是否有一种简单的方法可以完成翻转?我尝试使用
glScalef(1, -1, 1);
然后翻转它会导致一切停止渲染。
以下代码
import static org.lwjgl.opengl.GL11.*;
import java.awt.Font;
import org.newdawn.slick.Color;
import org.newdawn.slick.TrueTypeFont;
public class FontRenderer {
private TrueTypeFont font;
public FontRenderer(){
Font awtFont = new Font("Times New Roman", java.awt.Font.PLAIN, 24);
font = new TrueTypeFont(awtFont, false);
}
public void render(float x, float y, String text){
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
font.drawString(x, y, text);
}
public void render(float x, float y, String text, float r, float g, float b)
{
Color color = new Color(r, g, b);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
font.drawString(x, y, text, color);
}
}
答案 0 :(得分:0)
你的字体是颠倒的,因为Slick使用左上角的原点,而默认情况下LWJGL使用左下角的原点。你声明你知道你的起源位于左下方,那你为什么期望你的渲染代码有效?