gpt4 book ai didi

java - libGDX:带有 BitmapFont(true) 的文本字段在边框外呈现文本

转载 作者:行者123 更新时间:2023-11-29 09:07:34 24 4
gpt4 key购买 nike

我正在试验 TextField,但在翻转字体时遇到了问题。我的正交相机设置为 yDown = true。使用该设置,文本被翻转,所以我想出了一个解决方案,将 BitmapFont 的翻转构造函数参数设置为 true。但是当我尝试下面的代码时。文本“Hello World”呈现在其九 block 边框之外。这是一个 screenshot其中:

screenshot

    TextFieldStyle tfs = new TextFieldStyle();
NinePatch np = new NinePatch(new Texture(Gdx.files.internal(ResourceConstants.IMAGE_NINEPATCH)), 8, 8, 8, 8);

tfs.font = new BitmapFont(true);
tfs.fontColor = Color.BLACK;
tfs.background = np;

TextField tf = new TextField("Hello World", tfs);
tf.x = 50;
tf.y = 90;
tf.width = 100;
tf.height = 32;
addActor(tf);
tf.pack();

最佳答案

问题在于在 tfs 上调用 draw 的方法(这是设置坐标的地方)。字体的笛卡尔 y 坐标与其他 GDX 对象相对,我认为是因为排版需要以某种方式工作。

所以如果你打电话

myFont.draw(spriteBatch, "Hello World", 0, 0);

然后您会希望消息绘制在左下角的右侧。但这是错误的!字体本身是从左上角绘制的,因此您的消息将绘制在屏幕左下角的底部边缘下方。 我们甚至无法看到消息。

但是如果我们改变坐标:

myfont.draw(spriteBatch, "box2d x: " + String.format("%2.2f", x), 10, 20);

我们会看到这条消息,因为我们已经在负 y 方向上给了它足够的空间来显示它。

鉴于异常字体在 Y 方向上异常,并且呈现低于您预期的位置,我怀疑上述误解确实是问题所在。

如果您不控制 bitmapfont 本身的任何绘图坐标,而这仅由 TextField 类处理,并且无论文本字段的大小如何,字体总是越界,那么我会怀疑 GDX 中的错误。您可以尝试就此询问论坛。

关于java - libGDX:带有 BitmapFont(true) 的文本字段在边框外呈现文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14053763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com