0

我目前正在尝试为 PySDL2 制作位图字体,并且遇到了字符间距问题。API 需要表面、通用字符字形宽度和高度以及字符映射。字体是通过从指定宽度和高度的位图中读取字形来创建的,方法是将其与输入的映射相关联。

bmpfont = sdl2.ext.BitmapFont(font_surface, (64, 64), mapping)

我知道很多游戏开发框架都使用类似的模式,但通过提供特定的位图中的字形宽度、高度和偏移量。PySDL2 BitmapFont文档显示了一个偏移字典,但据我所知(通过多次尝试迭代),它无法被操纵以实现类似的目标。

正如您在下面的示例中看到的,带有 '|' 和 'j',间距看起来很傻,因为每个字符都被读取为 64x64 像素,并且由于上述原因,我无法控制该间距。

管道和松鸦

由于要集成到的项目要求,它必须是位图字体,我不能利用诸如 PySDL2 的 TTF 库之类的东西。任何帮助深表感谢。

4

1 回答 1

0

我认为使用py-sdl2'sext.font库是不可能的,但通常手动执行此操作的方法是找到字形,找到它的边缘,然后根据其单独的边界框复制每个字形。这里有一个指南,使用 C++ 和 SDL2 完整地描述了这个过程:https ://lazyfoo.net/tutorials/SDL/41_bitmap_fonts/index.php 。

于 2020-10-05T03:21:08.547 回答