2014-02-22 26 views
4

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.如何渲染lwjgl中的二維文字?

嗨,我正在做一個3D的Java LWJGL遊戲,我想呈現在中間我的屏幕上一些簡單的2D文本,但無論我怎麼努力,我從來沒有看到任何文字渲染在我的屏幕上任何地方這裏是我的Text2D.java類:

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); 
    } 
} 

這個類中的渲染函數在我的3D對象被渲染後調用。我希望有人能幫助我解決這個問題!

+0

此處不顯示所有代碼。您的字體阿特拉斯紋理在哪裏? –

+0

嗯,我想這是我的問題,考慮到我不知道那是什麼。你能解釋一下會做什麼嗎? –

+0

嘗試[此](http://lwjgl.org/wiki/index.php?title=Slick-Util_Library_-_Part_3_-_TrueType_Fonts_for_LWJGL)進行。它在一段時間以前爲我工作。 –

回答

9

您已經選擇了答案上面的解決方案,但你說這是行不通的。解決方案是縮放0.01f或類似的東西取決於你的設置。按比例縮放glScale(x,y,z)。 你也HABE到啓用融合這樣的:

glEnable(GL11.GL_BLEND); 
glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); 
+0

你也必須啓用這樣的混合: – HenrikD

+0

glEnable(GL11.GL_BLEND); \t \t \t \t glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA); – HenrikD

+0

我終於明白,我需要做你發佈的內容。謝謝! –

5

我創建了渲染文本的文本類。它使用LWJGL用java編寫。只要做 drawString(「text」,positionX,positionY,scale,width);

package text; 

import org.lwjgl.opengl.GL11; 

public class Text { 

public static void drawString(String s, float x, float y, float scale, float width) { 
     float startX = x; 
     scale = scale * 0.25f; 
     GL11.glLineWidth(width); 
     GL11.glBegin(GL11.GL_LINES); 
     GL11.glEnable(GL11.GL_LINE_WIDTH); 
     GL11.glColor3f(1, 1, 1); 
     boolean space = false; 
     int charNum = 1, spaceNum = 0; 
     for (char c : s.toLowerCase().toCharArray()) { 
      switch(c){ 
      case ' ': 
       space = true; 
       break; 
      case '\n': 
       y -= 2; 
       startX -= charNum * (scale * 5); 
       startX -= spaceNum * (scale * 3); 
       spaceNum = 0; 
       charNum = 0; 
       break; 
      case 'a': 
      GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
      GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + -1)); 
      GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + -1)); 
      GL11.glVertex2f(scale * startX, scale * (y + -1)); 
      GL11.glVertex2f(scale * startX, scale * (y + -1)); 
      GL11.glVertex2f(scale * startX, scale * y); 
      GL11.glVertex2f(scale * startX, scale * y); 
      GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
      GL11.glVertex2f(scale * startX, scale * y); 
      GL11.glVertex2f(scale * startX, scale * (y + 0.5f)); 
      GL11.glVertex2f(scale * startX, scale * (y + 0.5f)); 
      GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.5f)); 
       break; 
      case 'b': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       break; 
      case 'd': 
       GL11.glVertex2f(scale * startX, scale * (y - 1)); 
       GL11.glVertex2f(scale * startX, scale * (y + 0.8f)); 
      case 'c': 
       GL11.glVertex2f(scale * startX, scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * startX, scale * (y - 1)); 
       break; 
      case 'e': 
       GL11.glVertex2f(scale * startX, scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * startX, scale * y); 
       GL11.glVertex2f(scale * startX, scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * startX, scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case 'f': 
       GL11.glVertex2f(scale * (startX + 0.25f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.25f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.25f)); 
       break; 
      case 'g': 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1.5f)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1.5f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1.5f)); 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1f)); 
       break; 
      case 'h': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case 'i': 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       GL11.glEnd(); 
       GL11.glPointSize(width); 
       GL11.glBegin(GL11.GL_POINTS); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y + 0.25f)); 
       GL11.glEnd(); 
       GL11.glBegin(GL11.GL_LINES); 
       break; 
      case 'j': 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1.5f)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1.5f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1.5f)); 
       GL11.glEnd(); 
       GL11.glPointSize(width); 
       GL11.glBegin(GL11.GL_POINTS); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y + 0.25f)); 
       GL11.glEnd(); 
       GL11.glBegin(GL11.GL_LINES); 
       break; 
      case 'k': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.25f)); 
       break; 
      case 't': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.15f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.15f)); 
      case 'l': 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       break; 
      case 'm': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case 'p': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1.5f)); 
      case 'o': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
      case 'n': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case 'q': 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1.5f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case 'r': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 0.15f)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 0.1f)); 
       break; 
      case 's': 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 0.5f)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       break; 
      case 'u': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * y); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * y); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case 'w': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.125f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.125f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX + 0.125f), scale * (y)); 
       break; 
      case 'v': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       break; 
      case 'x': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       break; 
      case 'y': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.33f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1.5f)); 
       break; 
      case 'z': 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case '1': 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.25f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case '2': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.65f)); 
       GL11.glVertex2f(scale * (startX - 0.3f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.3f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.15f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.15f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.35f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       break; 
      case '3': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       break; 
      case '4': 
       GL11.glVertex2f(scale * startX, scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * startX, scale * (y - 1)); 
       GL11.glVertex2f(scale * startX, scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       break; 
      case '8': 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
      case '6': 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
      case '5': 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       break; 
      case '7': 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       break; 
      case '9': 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       break; 
      case '0': 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y - 1)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX - 0.5f), scale * (y + 0.8f)); 
       GL11.glVertex2f(scale * (startX), scale * (y + 0.8f)); 
       break; 
      } 
      if(!space){ 
       startX += scale * 5; 
       charNum++; 
      }else{ 
       startX += scale * 3; 
       spaceNum++; 
      } 
      space = false; 
     } 
     GL11.glEnd(); 
     GL11.glDisable(GL11.GL_LINE_WIDTH); 
    } 

} 
+15

這是顯着的 –

+3

那麼這是否意味着它很好? –

+0

它不適合我。我應該在規模和寬度上使用哪些配置?我不明白。請幫助 – IchHabsDrauf