我目前正在尝试为PySDL2制作一种位图字体,但在字符间距方面遇到了问题。API需要一个表面、通用字符字形宽度和高度以及字符映射。通过将字形与输入的映射相关联,从指定宽度和高度的位图中读取字形,从而创建字体。
bmpfont = sdl2.ext.BitmapFont(font_surface, (64, 64), mapping)我知道许多游戏开发框架都使用类似的模式,但允许XML列表通过在位图中提供特定的字形宽度、高度和偏移量来考虑不同大小的字符(例如,“w”表示短和胖,而“|”表示高和瘦)。PySDL2 BitmapFont documentation显示了一个偏置字典,但据我所知(通过多次尝试),它不能被操纵来实现类似的目标。
正如你在下面使用‘|’和‘j’的例子中看到的,间距看起来很傻,因为每个字符都被读取为64x64像素,而且由于前面提到的,我无法控制这个间距。

由于项目要求,这意味着要集成到其中,它必须是位图字体,我不能利用像PySDL2的TTF库。任何帮助都是非常感谢的。
发布于 2020-10-05 11:21:09
我认为使用py-sdl2的ext.font库是不可能做到这一点的,但通常手动完成的方法是找到字形,找到它的边,然后根据它各自的边界框复制每个字形。这里有一个使用C++和SDL2完整描述这一过程的指南:https://lazyfoo.net/tutorials/SDL/41_bitmap_fonts/index.php。
https://stackoverflow.com/questions/62806749
复制相似问题