Android AndEngine 动态更改文本

发布于 2024-12-26 02:30:56 字数 365 浏览 1 评论 0原文

我在 andengine 中使用自定义字体,当用户单击该 ui 时,我需要更改 ui 的颜色。这是我的代码。

Text exit=new Text(250, 390, this.mPlokFont, "Exit");
exit.setColor(255,0, 0, 255);  
scene.attachChild(exit); 

但它不起作用。我的字体:

mPlokFont = FontFactory.createFromAsset(this.mPlokFontTexture, this, "Plok.ttf", 16, true, Color.WHITE);

提前致谢。

I am using custom font in andengine and when the user click that ui I need to change the color of my ui.Here is my code.

Text exit=new Text(250, 390, this.mPlokFont, "Exit");
exit.setColor(255,0, 0, 255);  
scene.attachChild(exit); 

but it doesn't work. My font :

mPlokFont = FontFactory.createFromAsset(this.mPlokFontTexture, this, "Plok.ttf", 16, true, Color.WHITE);

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

差↓一点笑了 2025-01-02 02:30:56

我很确定您面临这个问题,因为您在字体纹理中使用了预乘 alpha。试试这个

mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR);
mUIFont = new Font(m_FontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.WHITE);

,它应该可以工作。 AFAIK,预乘 alpha 意味着纹理中的 RGB 值已经乘以 alpha 值,因此调用 .setAlpha() 不会改变任何内容(它不会被应用。

I'm pretty sure you are facing this issue because you are using premultiplied alpha in the font texture. Try this

mFontTexture = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR);
mUIFont = new Font(m_FontTexture, Typeface.create(Typeface.DEFAULT, Typeface.BOLD), 32, true, Color.WHITE);

and it should work. AFAIK, premultiplied alpha means the RGB values in the texture are already multiplied by an alpha value, so calling .setAlpha() will not change anything (it will not be applied.

妄想挽回 2025-01-02 02:30:56

尝试使用 ChangeableText 而不是 Text

Try to use ChangeableText instead of Text

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文