在Label(Actor)上设置文本会停止绘图

时间:2014-03-10 00:12:14

标签: java android eclipse libgdx

我无法想象这一点,我现在正在拔头发!

我添加了Stage Label,我设置了所有内容,第一次调用Stage.draw()时一切正常。但是,只要我设置了Label的文本就不会被绘制出来。有趣的是,当我不更改文本时,它会按预期完美地绘制,但是当我调用label.setText("THE TEXT")时,它就不会绘制。

我已经完成了我的代码,并且在设置{{1}的文本之前和之后记下了heightwidthxy值},它们都是相同的(之前和之后)。

此外,当我绘制Label时,它会在Stage上方绘制,而Sprite的定位则基于Sprite的位置。 在我Label之后和之后设置文字之前,Sprite绘制正常。

PS:我还确保Label未被Sprite“覆盖”。

这是我的设置:

我有一个Label课程,可以呈现MainGame课程,只要按下Player按钮back并且Sprite被绘制,或者应该得到。

Stage

玩家类 - 更新方法

spriteBatch.begin();    
player.update(spriteBatch, delta);
spriteBatch.end();
// the pause menu is drawn with a separate sprite batch as it needs to be in middle relative to the screen and above everything else
if (player.isPaused()){
    messageSpriteBatch.begin();
    messageSprite.draw(messageSpriteBatch); 
    messageSpriteBatch.end();
    messageStage.draw(); // the stage doesn't seem to be getting drawn
}

这是我初始化if (!paused){ // removed for clarity }else{ // on MainGame class we render a small box with one of the following messages // READY // PAUSE // QUIT? // GAME OVER if (Gdx.input.justTouched()){ paused = false; } spriteBatch.setProjectionMatrix(camera.combined); camera.update(); } messageSpriteBatch = new SpriteBatch(); messageStage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); messageFont = new BitmapFont(Gdx.files.internal("fonts/fontfile.fnt")); messageStyle = new LabelStyle(); messageStyle.font = messageFont; messageLabel = new Label("READY", messageStyle); LabelSprite的方式:

Stage

请在我得到光头xD之前帮助我

2 个答案:

答案 0 :(得分:1)

创建Label时,标签的宽度和高度通常设置一次,与传递给构造函数的初始文本的宽度和高度相匹配。你当然可以通过稍后设置宽度和高度来使它更大。然后你也可以使用路线......

更改文本时是否使用任何特殊字符,因此字体有问题?

也许张贴一些代码可以提供更多见解......

答案 1 :(得分:0)

哈哈,好吧,我发现了什么事情,这是我的字体文件,你看我编辑的时候,我用文字 READY ,所以当我保存它时,我没有'我知道写的文字是保存的,所以当我查看font.png文件时,我发现它只包含字母 ADERY

感谢您的帮助,无论如何=]