Wie das Rendern von 2D-text in lwjgl?

Before you go off on me for "not searching", I've searched around a LOT and found a lot of answers, but none of them worked for me.

Hallo, ich bin so ein 3D-java-lwjgl Spiel, und ich versuche, machen einige einfache 2D-text auf meinem Bildschirm in der Mitte, aber egal was ich versuche, ich nie sehen keine text gerendert auf meinem Bildschirm überall. Hier ist meine Text2D.java Klasse:

package com.gmail.br45entei.base.engine.rendering;

import java.awt.Font;
import java.awt.FontFormatException;
import java.io.IOException;

import org.newdawn.slick.Color;

import org.newdawn.slick.UnicodeFont;

import com.gmail.br45entei.base.engine.core.Vector2f;
import com.gmail.br45entei.base.game.Game;
import com.gmail.br45entei.base.game.MainComponent;
import com.gmail.br45entei.file.FileMgmt;

/**
 * @author Brian_Entei
 *
 */
public class Text3D {

    private Camera camera;

    private UnicodeFont font;
    private Color color;
    private Vector2f position;
    private String text = "New string";
    private int size = 12;

    public int getSize() {
        return this.size;
    }

    public void setSize(int size) {
        this.size = size;
        updateFont();
    }

    private void updateFont() {
        try {
            this.font = new UnicodeFont(Font.createFont(Font.TRUETYPE_FONT, FileMgmt.getFile(MainComponent.resourceFolder, "/fonts/BrianOwenReidBold.ttf", false)), size, false, false);
        } catch (FontFormatException e) {
            FileMgmt.LogException(e, "updateFont()", "Failed to create font from file!", false);
        } catch (IOException e) {
            FileMgmt.LogException(e, "Text3D()", "Failed to load file to create font!", false);
        }
    }

    public Text3D(String text, Camera camera) {
        this.camera = camera;
        this.color = Color.black;
        this.position = new Vector2f(0, 0);
        this.text = text;
        updateFont();
    }

    public void drawHudString() {
        //org.lwjgl.opengl.GL11.glPushMatrix();//This gets called right before here.
        org.lwjgl.opengl.GL11.glRotatef(camera.getForward().getX(), -1.0f, 0.0f, 0.0f);
        org.lwjgl.opengl.GL11.glRotatef(camera.getForward().getY(), 0.0f, -1.0f, 0.0f);
        org.lwjgl.opengl.GL11.glRotatef(camera.getForward().getZ(), 0.0f, 0.0f, -1.0f);
        org.lwjgl.opengl.GL11.glTranslatef(-camera.getPos().getX(), -camera.getPos().getY(), -camera.getPos().getZ() + 20);

        this.font.drawString(this.position.getX(), this.position.getY(), this.text, this.color);
        //org.lwjgl.opengl.GL11.glPopMatrix();//This gets called right after here.
    }

    public void render() {
        Game.print("Text render!");
        org.lwjgl.opengl.GL11.glMatrixMode(org.lwjgl.opengl.GL11.GL_PROJECTION);
        org.lwjgl.opengl.GL11.glPushMatrix();
        org.lwjgl.opengl.GL11.glLoadIdentity();
        org.lwjgl.opengl.GL11.glOrtho(0, 800, 600, 0, 1, -1);
        org.lwjgl.opengl.GL11.glMatrixMode(org.lwjgl.opengl.GL11.GL_MODELVIEW);
        org.lwjgl.opengl.GL11.glDisable(org.lwjgl.opengl.GL11.GL_CULL_FACE);
        org.lwjgl.opengl.GL11.glDisable(org.lwjgl.opengl.GL11.GL_DEPTH_TEST); 
        org.lwjgl.opengl.GL11.glClear(org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT);
        org.lwjgl.opengl.GL11.glLoadIdentity();

        //render font
        this.drawHudString();

        org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL11.GL_DEPTH_TEST);
        org.lwjgl.opengl.GL11.glEnable(org.lwjgl.opengl.GL11.GL_CULL_FACE);
        org.lwjgl.opengl.GL11.glMatrixMode(org.lwjgl.opengl.GL11.GL_PROJECTION);
        org.lwjgl.opengl.GL11.glPopMatrix();
        org.lwjgl.opengl.GL11.glMatrixMode(org.lwjgl.opengl.GL11.GL_MODELVIEW);
    }
}

Die render-Funktion in dieser Klasse wird aufgerufen, nachdem meine 3D-Objekte gerendert werden. Ich hoffe, jemand kann mir helfen, mit dieser!

  • Sie zeigen nicht, hier der gesamte code.Wo ist die Schrift atlas textur?
  • Naja, ich denke das ist mein problem, bedenkt, dass ich nicht wissen, was das ist. Könnten Sie erklären, was Sie tun?
  • Versuchen Sie dieser aus. Es hat sich für mich vor einiger Zeit.
  • Die neue link Sie haben sich verändert die Struktur der Webseite. Und so veraltet ist, wie gezeigt, in der Dokumentation.
InformationsquelleAutor Brian_Entei | 2014-02-22
Schreibe einen Kommentar