问题标签 [bitmap-fonts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
47 浏览

libgdx - Libgdx 找出行的结束位置

所以我有一个标签 - 200 宽度,环绕设置为 true。在为我的标签设置文本之前,我想检查第一行结束的位置,然后是第二行结束的时间等。是否可以检查这个?我正在研究标签的文本对齐算法,我需要知道行在哪里结束。

0 投票
2 回答
599 浏览

libgdx - glyphLayout 中的 targetWidth 是什么

参数targetWidth在这里的确切含义是什么以及它与wrap参数有什么关系?

0 投票
1 回答
823 浏览

libgdx - 在 LibGdx 中管理位图字体资源

我可以使用以下代码加载位图字体:

但我正在尝试实现 AssetManager。因此,我使用以下代码重新编码了该片段:

如果失败了当然。对 finishLoading() 方法的调用返回了一条消息,指示:

无法加载资产的依赖项:“Fonts/MyFont.fnt”

好的。这是有道理的,因为我没有对纹理做任何事情。那么如何将纹理文件作为依赖项传递呢?github.com/libgdx/libgdx/wiki/Managing-your-assets 说:

BitmapFontLoader 是一个很好的异步加载器示例,它还具有在加载实际资产之前需要加载的依赖项(在这种情况下,它是存储字形的纹理)。同样,你可以用这个做几乎任何事情。

嗯!我猜他们假设,“......如果你知道怎么做!” 但是,他们的示例并没有说明如何 - 事实上,他们的示例几乎显示了我所写的内容。所以,我很难过。谷歌似乎能找到的只是如何处理 TTF 字体的示例,但对于常规的旧位图字体却一无所获。

有没有人有这个错误的解决方案的例子。太感谢了!

0 投票
2 回答
419 浏览

winapi - 如何在 GDI 中绘制光栅控制台字体?

如何在 GDI 应用程序中绘制 Windows 控制台使用的光栅字体?例如,此屏幕截图中显示的 8x8 固定字体。命令提示符属性 - 光栅字体

这些字体可以通过 CreateFont() API 使用,还是 Windows 加载这些字体的特殊方式?

0 投票
1 回答
389 浏览

java - 如何在世界坐标空间中绘制文本?

我正在 libGDX 中创建游戏。我想创建一些 UI 元素(按钮和东西),因为我的应用程序设计,我想在世界空间中绘制它们,作为其他游戏对象。

我正在使用从真字体文件(.ttf)生成位图字体的 Freetype 生成器。问题是字体的尺寸以像素为单位。

我用来渲染世界的正交相机,视口大小约为 10x10,所以当我生成大小为 10 的字体时,它几乎覆盖了整个屏幕(太大)并且看起来也很丑,因为为字体生成了位图太小(像素太少)。

我想要的是创建精灵,以相同的大小(世界空间)绘制它并在其上绘制文本,然后基本上创建一个按钮。

有没有一些成熟的方法来处理这个问题?

0 投票
3 回答
361 浏览

java - 我在哪里可以得到 BitmapFont,我应该把它放在哪里?

所以我正在更新我的旧安卓游戏,我的字体有一些问题。我不得不放大我的位图字体,现在它变得模糊了。因此,我想知道在哪里可以获得更高分辨率的位图字体以及我必须将它放在哪个文件夹中?有人可以帮我吗?

0 投票
0 回答
33 浏览

java - 如果我使用 GlyphLayout 绘制位图字体,LibGDX 文本会失真

我需要使用glyphlayout以便可以使文本居中,但我发现如果我这样做,文本会由于间距不正确而失真。

像这样它显示得很好:

在此处输入图像描述

但是glyphlayout由于某种原因使用它来绘制间距是不同的:

在此处输入图像描述

Glyphlayout 似乎在这里改变了间距,但我看不到任何用于设置间距的选项。

0 投票
2 回答
359 浏览

canvas - 使用 Fabric JS 模拟位图字体的字距调整

我正在尝试使用 Fabric JS 创建一种效果,其中字母看起来像这样在毛衣上“刺绣”:

我可以通过使用这个动作在 Photoshop 中实现这个效果。

我把它变成 a 的想法<canvas>是从 Photoshop 中渲染出每个刺绣字母的 png。然后,我将根据用户键入的内容将每个字母放在画布上。

然而,这种方法不会有正确的字距调整。

为了解决这个问题,我尝试使用相同的字体在 Fabric 中写出文本,然后将每个刺绣 png 覆盖在它要替换的字母之上(然后隐藏文本本身)。

这是我呈现文本的方式:

然后是我渲染刺绣字母的方法:

但是,我无法让刺绣字母完全覆盖常规文本(即使它是相同的字体):

在此处输入图像描述

我怎样才能做到这一点?有没有更好的方法让字距调整正常工作?

0 投票
1 回答
145 浏览

java - 在 libgdx 中找不到 BitmapFont.TextBounds

我试图编写这段代码,但它显示错误,说它找不到 TextBounds。但是当我只使用 BitmapFont 时它工作得很好。

我正在使用 Netbeans 8.2

0 投票
1 回答
199 浏览

c++ - 使用 Arduino 减少与 3.5" TFT 显示器一起使用的 KeDei TFT 库所需的内存

我需要减少与用于 Arduino Uno 和 ATmega 2560 的 Osoyoo 3.5" TFT 触摸屏显示扩展板一起使用的KeDei TFT 库所需的内存。当我尝试编写一个使用 KeDei 库的 TFT 显示器的简单 Arduino 应用程序时,大多数Arduino 上的可用内存由库本身占用。

不幸的是,我发现虽然 ATmega 2560 确实具有必要的内存量,但当 TFT 显示器与该设备一起使用时,KeDei TFT 库无法提供正确的触摸坐标,因此 ATmega 2560 不可行,除非 Osoyoo 客户支持提供一个解法。

调查库源代码,我在文件 KeDei_font.cpp 中发现了一个位图字体表,用于生成显示的字符。这个位图字体表是一个数组,unsigned char font16_B[96][16]似乎是主要的内存猪。此数组包含 ASCII 字符的位图字体,从空格字符 ,0x20到波浪号字符0x7e.

我所做的一件事是通过消除小写字母并将小写字母转换为大写字母来减少字符数。这会导致表格const unsigned char font16_B[59][16]的大小略大于原始表格的一半。

通过这种方法,我还消除了一些其他标点符号类型的字符,但只要我只显示字母数字字符和空格,这将起作用。

然后在生成字符并逐像素显示它们的函数中,如果我启用了较小的表,我有以下代码可以将小写字符转换为大写字符。

使用这种方法,当我使用定义的 SMALLER_FONT_TABLE 编译我的 Arduino 草图时,编译完成并出现以下警告:

我可以做些什么来进一步减少显示字体所需的内存?是否有另一种使用较少内存的位图字体?