如何制作字体表(在python rogulelike中使用)

2024-09-28 15:30:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我继续在python roguelike上取得进展,并进一步深入本教程:http://roguebasin.roguelikedevelopment.org/index.php?title=Complete_Roguelike_Tutorial,_using_python%2Blibtcod。我也做了我自己的字体在这个游戏中使用,但我不知道怎么做。这是指向我当前使用的字体图像的链接:http://i.imgur.com/j6FdNky.png。在python代码中,它将自定义字体设置为“arial10x10.png”,即该字体图像。我试着用我自己的字体做一个图像,但是它被扭曲了。在

有人知道我如何实现自己的字体吗?另外,我使用的是libtcod,我只有.ttf格式的自己的字体。 谢谢。在


Tags: org图像httpindexpngtitle字体教程
1条回答
网友
1楼 · 发布于 2024-09-28 15:30:56

要以libtcod期望的方式将TrueType字体渲染为位图,应该使用单独的库字体渲染是一项非常复杂的任务。FreeType是一个非常流行的用于字体渲染的开源库。您可以在这里找到Python接口:http://code.google.com/p/freetype-py/。你只需要在一个工具中使用FreeType开发你的流氓,而不是在你的实际游戏。在

首先,确定你将在你的流氓游戏中使用什么角色。确定如何在字体表上设置这些字符的布局。您也可以简单地选择使用与您发布的图像中相同的布局,即从空格字符(字符32)开始的具有32列的工作表。在

使用字体呈现库,以所需的大小单独渲染每个字符。注意为每种字体生成的大小。例如,“.”将变小,“w”将变大,即使字体大小相同。不仅要计算高度,还要计算基线以上的高度和基线以下的高度。(例如:如果“A”和“g”都是16像素高,则可能仍然需要一个比16像素高的矩形才能在基线与基线之间正确对齐。)找到能够容纳所有这些大小的最小矩形大小这就是字体表中每个单元格的大小。在

一旦你知道你的工作表将有多大,再次通过所有需要的字母来构建你的位图,把每个字母放在它的单元格中。就y定位而言,所有基线必须对齐。如果某些字符比其他字符宽,则可以选择将每个字符在其单元格内居中或左对齐。(每一个都会有自己的奇怪之处,你真的会想要一个固定宽度的字体给一个流氓的人。)

附加提示:

  • 使用抗锯齿。这会使你的字体比纯字体更容易看 单色的。在
  • 不要使用颜色,用灰度渲染字体。libtcod有 从灰度生成彩色文本的功能 字体。在
  • 考虑你是否想要一个方形字体。a的优点 方形字体是你的流氓世界里的“圆圈”看起来像 屏幕上的圆圈。缺点是方形字体 通常“更丑”更难阅读。在

相关问题 更多 >