0

我有一个正在工作的 libgdx 游戏,在这个游戏中,当您点击“帮助”屏幕时,我的 Help_Manager 类使用我的“房间”舞台对象来绘制标签。房间的摄像头宽 27,高 18。舞台使用相同的相机,并将其视口设置为相同的宽度和高度。 在此处输入图像描述

如果我要使用 bounds(4,4,1,1) 将文本按钮添加到舞台,按钮会正确绘制,但是当我添加带有 bounds(0,0,16,4) 的标签时,标签“S”单独占据屏幕的一半(如上所示)(应该说“从船滑动手指到\“Fling\”船。”)。无论我将边界宽度和高度设置为什么,标签仍然是相同的大小。更改比例也没有效果。更改字体比例(标签的,而不是字体)确实有效果,但由于某种原因,文本都搞砸了: 乱七八糟的文字

继承人的代码片段:Room.java:

Stage stage = new Stage();
camera = new OrthographicCamera(WIDTH,HEIGHT);
camera.position.set(WIDTH/2,HEIGHT/2,0);
camera.update();
stage.setCamera(camera);
stage.setViewport(WIDTH, HEIGHT, false);
public void resize(int width, int height){
    ppux = width/WIDTH;
    ppuy = height/HEIGHT;
    stage.setViewport(Room.WIDTH,Room.HEIGHT,false);
}
public void render(float delta){
    stage.act(delta);
    stage.draw();
}

Help_Manager.java

BitmapFont font = new BitmapFont();
LabelStyle style = new LabelStyle();
Label text;
style.font = font;
text = new Label(instructions[0],style);
text.setText(instructions[stage]);
text.setBounds(0,0,16,4);
//text.setFontScale(0.1f);
room.stage.addActor(text);

那么如何让我的标签合作呢?提前感谢您的帮助!

4

1 回答 1

2

好吧,我发现字体默认使用整数作为位置。当使用较小的相机尺寸和舞台视口时,意味着需要更准确地放置字母,因此我不得不更改 font.setUseIntegerPositions(false); 我还发现,当您为标签设置键时,这只是定义了可以使用的空间,但仍然填充相同的字体和文本大小。你把同样的东西放在一个更大/更小的盒子里。(这解释了为什么当您增加标签的高度、提高顶部边界以及文本从顶部开始时,文本会向上移动)。要实际更改字体的大小,请使用 text.setFontScale();

于 2013-03-27T04:04:56.193 回答