Tôi nghiêm túc cá cược rằng tôi đã làm một điều gì đó thật ngu ngốc và dường như không thể nhận ra điều đó.Làm thế nào để vẽ một BitmapFont trong LibGDX?
package com.me.mygdxgame;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.Texture.TextureFilter;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
public class Locked implements ApplicationListener
{
private OrthographicCamera camera;
private SpriteBatch batch;
private Texture texture;
private Sprite sprite;
private BitmapFont font;
private CharSequence str = "Hello World!";
private float width;
private float height;
@Override
public void create()
{
width = Gdx.graphics.getWidth();
height = Gdx.graphics.getHeight();
camera = new OrthographicCamera(1, height/width);
batch = new SpriteBatch();
texture = new Texture(Gdx.files.internal("data/libgdx.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275);
sprite = new Sprite(region);
sprite.setSize(0.9f, 0.9f * sprite.getHeight()/sprite.getWidth());
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);
font = new BitmapFont(Gdx.files.internal("data/digib.fnt"),
Gdx.files.internal("data/digib.png"), false);
}
@Override
public void dispose()
{
batch.dispose();
texture.dispose();
}
@Override
public void render()
{
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
font.setColor(0.0f, 0.0f, 0.0f, 1.0f);
//sprite.draw(batch);
font.draw(batch, str, width*0.5f, height*0.5f);
batch.end();
}
@Override
public void resize(int width, int height)
{
}
@Override
public void pause()
{
}
@Override
public void resume()
{
}
}
Dự án đã được tạo ra với các mẫu công cụ mà họ cung cấp GDX-setup-ui.jar Như bạn có thể thấy trong các mã, tôi không bận tâm để thoát khỏi các mã mặc định (Chỉ cần một số các mã vẽ đơn giản để hiển thị biểu trưng LibGDX).
Như vậy, với các dự án sạch tạo ra, tôi theo hướng dẫn này đây http://code.google.com/p/libgdx-users/wiki/addingText2D
và cuối cùng đến với các mã được cung cấp ở trên.
Vấn đề là, tại sao không hiển thị văn bản @ # $ ing !? Tôi đã thay đổi vị trí nhiều lần và vẫn không có may mắn: \
Tôi đã bỏ lỡ điều gì đó?
FYI: Phông chữ tốt, tôi thả chúng vào một trò chơi khác và hoạt động.
Tôi không thể sử dụng generator.generateFont (int); bởi vì nó không tồn tại. Bạn chỉ có thể vượt qua trong một FreeTypeFontParameter – Eames
Có một hướng dẫn về cách sử dụng FreeTypeFontGenerator tại đây> https://libgdx.info/basic-label/ – Julien