2015-04-26 150 views
1

我在LibGDX中很難繪製文本。每次我運行它,我都會看到一個黑色的窗戶。我希望文本是白色的,但我什麼都看不到。我嘗試過找到大量的教程和vieos,但仍然無法實現。我的資產文件夾/字體中有一個vaild fnt和png文件。在LibGDX中繪製文本

package org.alexwebber.frc.stalk; 

import com.badlogic.gdx.ApplicationAdapter; 
import com.badlogic.gdx.ApplicationListener; 
import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.graphics.g2d.BitmapFont; 
import com.badlogic.gdx.graphics.g2d.SpriteBatch; 

public class Main extends ApplicationAdapter 
{ 
    public class HelloWorld implements ApplicationListener 
    { 
     private SpriteBatch batch; 
     private BitmapFont font; 

     @Override 
     public void create() 
     { 
      batch = new SpriteBatch(); 
      font = new BitmapFont(Gdx.files.internal("fonts/main.fnt"), 
          Gdx.files.internal("fonts/main.png"), false); 
     } 

     @Override 
     public void dispose() 
     { 
      batch.dispose(); 
      font.dispose(); 
     } 

     @Override 
     public void render() 
     { 
      batch.begin(); 
      font.setColor(255.0f, 255.0f, 255.0f, 255.0f); 
      font.draw(batch, "Hello World", 25, 160); 
      batch.end(); 
     } 

     @Override 
     public void resize(int width, int height) 
     { 
     } 

     @Override 
     public void pause() 
     { 
     } 

     @Override 
     public void resume() 
     { 
     } 
    } 
} 
+0

當你嘗試'font = new BitmapFont();'時會發生什麼?此外,對於所有四種顏色值,「1.0f」應該足夠,而不是「255.0f」。 –

+0

@JamesSkemp同樣的結果,沒有什麼 –

+0

我在應用程序中創建了一個虛擬頁面,雖然我實現了'Screen',但它工作正常。我會嘗試創建一個空的項目,看看我是否可以複製它。我想我有一個想法,但是... –

回答

3

東西可能會影響你的是去除清屏的:

public void render() { 
    Gdx.gl.glClearColor(0, 0, 0, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    batch.begin(); 
    font.setColor(Color.WHITE); 
    font.draw(batch, "Hello world", 25, 160); 
    batch.end(); 
} 

您也可以嘗試通過Color.WHITE如上。如果您使用的Android設備具有極高的屏幕分辨率,則可能無法看到文本行。

通過a Desktop application進行測試可能也是一個好主意,因爲您可以調整屏幕分辨率,使文本尺寸更大。