我无法想象这一点,我现在正在拔头发!
我添加了Stage
Label
,我设置了所有内容,第一次调用Stage.draw()
时一切正常。但是,只要我设置了Label
的文本就不会被绘制出来。有趣的是,当我不更改文本时,它会按预期完美地绘制,但是当我调用label.setText("THE TEXT")
时,它就不会绘制。
我已经完成了我的代码,并且在设置{{1}的文本之前和之后记下了height
,width
,x
和y
值},它们都是相同的(之前和之后)。
此外,当我绘制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);
,Label
和Sprite
的方式:
Stage
请在我得到光头xD之前帮助我
答案 0 :(得分:1)
创建Label时,标签的宽度和高度通常设置一次,与传递给构造函数的初始文本的宽度和高度相匹配。你当然可以通过稍后设置宽度和高度来使它更大。然后你也可以使用路线......
更改文本时是否使用任何特殊字符,因此字体有问题?
也许张贴一些代码可以提供更多见解......
答案 1 :(得分:0)
哈哈,好吧,我发现了什么事情,这是我的字体文件,你看我编辑的时候,我用文字 READY ,所以当我保存它时,我没有'我知道写的文字是保存的,所以当我查看font.png文件时,我发现它只包含字母 ADERY 。
感谢您的帮助,无论如何=]