【问题标题】:font.setColor method not working after libGDX update to latest version在 libGDX 更新到最新版本后 font.setColor 方法不起作用
【发布时间】:2017-05-20 02:46:18
【问题描述】:

我在 libGDX 中有一些 3-4 年的游戏项目。现在我决定更新它并从 Eclipse 迁移到 Android Studio。所以,我安装了 A.S.下载并安装了新的 libGDX 项目。然后添加了我的旧源文件和资产。一切顺利,游戏运行进行了一些细微的更改。除了 font.setColor 不再起作用 - 屏幕上的文本是黑色的。透明度也不起作用。以前效果很好。

所以,我的字体是用 Hiero 生成的,它是白色的(我在这里的其他一些问题中看到它必须是白色的)。

font = new BitmapFont(Gdx.files.internal("fonts/bundy.fnt"),
                Gdx.files.internal("fonts/bundy_0.png"), false);
...

font.setColor(0.2f, 0.5f, 0.2f, 1.0f);
font.draw(game.batch, "MAP" , 835,580);

提到我用过

import com.badlogic.gdx.graphics.GL10;

但现在我搬到了

import com.badlogic.gdx.graphics.GL20;

因为不再支持 GL10。

另外,现在我使用GlyphLayout 类来获取文本边界。我没有看到任何其他可能对字体颜色产生任何影响的变化。

知道为什么 setColor 不起作用吗?是否有一些我必须做的新步骤?

【问题讨论】:

  • 我和你一样,将我的旧项目更新为 IntelliJ 和新版本的 libgdx (1.9.5),不得不使用 GlyphLayout 等。我的 font.setColor() 工作得很好,所以我确定那不是你的问题。
  • 某些东西肯定已经改变了。源代码是一样的,字体文件也是。
  • 字体文件用的是什么图片格式?我的是 8bit png。
  • 我不知道 xd,很久以前在 hiero 中创建了字体

标签: fonts colors libgdx


【解决方案1】:

好的,找到了!

所以,旧字体图像文件在旧的 libGDX 上运行良好,但在新的 8 位 png 灰度中无法运行。字母为白色,背景为黑色。

现在我用最新的 Hiero 生成了新字体,它是 8 位 png,但在彩色模式下,带有白色字母和透明背景,效果很好。

所以这是关于图像格式的。

附:透明度仍然不起作用……但我可以忍受。

【讨论】:

  • 可能因为 8 位,透明度不起作用?透明度不需要更多位吗?
  • 为什么要减去?如果它使用的是旧版本的框架和方法、参数或其他任何未更改的东西,它也应该适用于新版本。你不能只支持某种格式。
  • 我赞成你,因为这是一个正确的答案,我不知道谁反对你。
猜你喜欢
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 2022-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
相关资源
最近更新 更多