Java-显示文本OpenGL
我正在关注一个关于用OpenGL在Java中制作rpg的youtube教程 现在我正在慢慢进步,而且还没有GUI类型的教程,所以我想添加一些文本来说明我的统计数据和其他内容 这是我代码的主要类Java-显示文本OpenGL,java,opengl,drawstring,Java,Opengl,Drawstring,我正在关注一个关于用OpenGL在Java中制作rpg的youtube教程 现在我正在慢慢进步,而且还没有GUI类型的教程,所以我想添加一些文本来说明我的统计数据和其他内容 这是我代码的主要类 package com.base.engine; import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT; import static org.lwjgl.opengl.GL11.GL_DEPTH_TEST; import static org.l
package com.base.engine;
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_DEPTH_TEST;
import static org.lwjgl.opengl.GL11.GL_MODELVIEW;
import static org.lwjgl.opengl.GL11.GL_PROJECTION;
import static org.lwjgl.opengl.GL11.glClear;
import static org.lwjgl.opengl.GL11.glClearColor;
import static org.lwjgl.opengl.GL11.glDisable;
import static org.lwjgl.opengl.GL11.glLoadIdentity;
import static org.lwjgl.opengl.GL11.glMatrixMode;
import static org.lwjgl.opengl.GL11.glOrtho;
import java.util.ArrayList;
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
import com.base.game.GUI;
import com.base.game.Game;
import com.base.game.Time;
public class Main {
public static Game game;
private static GUI gui;
public static void main(String[] args){
initDisplay();
initGL();
initGame();
gui = new GUI("i");
gameLoop();
cleanUp();
}
public static ArrayList<GameObject> sphereCollide(float x, float y, float radius)
{
return game.sphereCollide(x, y, radius);
}
public static ArrayList<GameObject> rectangleCollide(float x1, float y1, float x2, float y2)
{
return game.rectangleCollide(x1,y1,x2,y2);
}
public static void initGame(){
game = new Game();
}
public static void getInput(){
game.getInput();
}
public static void update(){
game.update();
}
public static void render(){
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
game.render();
gui.drawText("Welcome to the jungle!");
Display.update();
Display.sync(60);
}
public static void cleanUp(){
Display.destroy();
Keyboard.destroy();
}
public static void gameLoop(){
Time.init();
while(!Display.isCloseRequested())
{
Time.update();
getInput();
update();
render();
}
}
public static void initGL(){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, Display.getWidth(), 0, Display.getHeight(), -1, 1);
glMatrixMode(GL_MODELVIEW);
glDisable(GL_DEPTH_TEST);
glClearColor(0, 0, 0, 0);
glDisable(GL11.GL_TEXTURE_2D);
}
public static void initDisplay(){
try {
Display.setDisplayMode(new DisplayMode(800,600));
Display.create();
Keyboard.create();
Display.setVSyncEnabled(true);
} catch (LWJGLException e) {
e.printStackTrace();
}
}
}
现在,这项工作在一个自。它在屏幕上添加了一些内容,但没有添加文本,而是添加了一个黄色框。没有文本
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
那应该行。那么,你在哪里调用你的
drawText
方法呢?在游戏结束后的render方法中。render();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);