2013-02-07 38 views
1

我正在嘗試使用中的BitmapFont作爲Bob的「生命計數」libgdx demo超級跳線。我添加:在libgdx中渲染帶有BitmapFont的文本

Assets.font.draw(batch, "20", world.bob.position.x, world.bob.position.y); 

WorldRenderer類的renderBob()方法。

但文本在一個巨大的大小來呈現,幾乎可以在屏幕的底部可以看到:

Super Jumper Bob jumps over a giant "2"

我應該怎麼做才能使生活計數文本正確地呈現在Bob的頂部頭?

回答

0

在WorldRenderer級你有不同的相機/分辨率設置,只有分辨率:

static final float FRUSTUM_WIDTH = 10; static final float FRUSTUM_HEIGHT = 15;

所以,你必須做的是: 畫出你的字符串中GameScreen.presentRunning,但你必須重新計算Bob的位置到您的GameScreen-Camera。

我想這裏面應該工作presentRunning(現在不能測試):

Assets.font.draw(batcher, "20", world.bob.position.x/10 * 320, world.bob.position.y/15 * 480);

+0

感謝您的幫助。我嘗試了你的方法,它在第一步工作,但文本比bob更快地向上移動,並最終從屏幕頂部離開。 我認爲這是因爲guiCam沒有移動,但我們的文本是在'world.bob.position.y'後面。 你覺得呢? –

+0

這應該工作::)'float maxY = world.bob.position.y; \t \t if(maxY> 15/2) \t \t \t maxY = 15/2; \t \t \t \t Assets.font.draw(分批, 「20」,world.bob.position.x/10 * 320,MAXY/15 * 480);' – CodeNoob

+0

雅。這就是訣竅。謝謝。 –