プログラムでデバッグ用のテキストを追加しようとしています。私は、メインクラスにそうような選手debugDrawメソッドを呼び出します。ここではLibGdx Javaにテキストが表示されない
public void create() {
//Initialize essentials
cam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
cam.setToOrtho(false);
rend = new ShapeRenderer();
rend.setAutoShapeType(true);
batch = new SpriteBatch();
// Initialize Entities
player = new Player(new Vector2(100, 100), new Vector2(100,100));
enemy = new Enemy(new Vector2(100, 100), new Vector2(100,10));
}
@Override
public void render() {
//Update player
player.update();
//Update camera then set matrix of batch
cam.update();
batch.setTransformMatrix(cam.combined);
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
// ShapeRenderer begin
rend.begin();
player.render(rend);
enemy.render(rend);
rend.end();
// ShapeRenderer end
// SpriteBatch begin
batch.begin();
player.renderDebugText(batch);
batch.end();
// SpriteBatch end
}
はプレイヤーに親クラスであるエンティティクラスです:
public Entity(Vector2 coords, Vector2 dims){
//Assign constructors
position = coords;
dim = dims;
//For debugging purposes of all entities
debugText = new BitmapFont();
debugText.setColor(Color.WHITE);
}
public void renderDebugText(SpriteBatch batch){
debugText.draw(batch, "Vel.x: " + vel.x, 100, 100);
}
私はプログラムを実行するときしかし、私はちょうど取得します私の普通の画面ではテキストが全くありません。なぜこれが動かないのか分かりません。どんな援助も非常に高く評価されます。
投稿したコードから問題が表示されません。あなたが投稿していない他のコードで何か他のことが起こっていると思われます。 'resize'メソッドをオーバーライドしましたか? SpriteBatchでカメラマトリックスを設定しているのに気付きましたが、ShapeRendererでは設定しませんでした。ところで、あなたはフォントの1つのコピーを読み込み、すべてのエンティティに対して重複したコピーをロードするのではなく、 'renderDebugText()'メソッドに参照を渡すべきです。フォントは非常に重いオブジェクトです。 – Tenfour04