Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何制作字体表(用于python roguelike)_Python_Fonts_Roguelike - Fatal编程技术网

如何制作字体表(用于python roguelike)

如何制作字体表(用于python roguelike),python,fonts,roguelike,Python,Fonts,Roguelike,我继续在python roguelike上取得进展,并进一步深入到本教程:。我也制作了我自己的字体在这个游戏中使用,但我不知道怎么做。这是指向我当前使用的字体图像的链接:。在python代码中,它将自定义字体设置为“arial10x10.png”,这就是字体图像。我试着用我自己的字体制作一个图像,但是它被扭曲了 有人知道我如何实现自己的字体吗?另外,我使用的是libtcod,我只有自己的.ttf格式的字体。 谢谢。要以libtcod所期望的方式将TrueType字体渲染为位图,您应该使用单独的库

我继续在python roguelike上取得进展,并进一步深入到本教程:。我也制作了我自己的字体在这个游戏中使用,但我不知道怎么做。这是指向我当前使用的字体图像的链接:。在python代码中,它将自定义字体设置为“arial10x10.png”,这就是字体图像。我试着用我自己的字体制作一个图像,但是它被扭曲了

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

要以libtcod所期望的方式将TrueType字体渲染为位图,您应该使用单独的库-字体渲染是一项非常复杂的任务。FreeType是一个非常流行的用于字体渲染的开源库。您可以在此处找到Python接口:。你只需要在开发类似流氓游戏时使用的工具中使用FreeType,而不是在实际游戏中

首先,确定您将在roguelike中使用哪些字符。确定如何在字体表上布局这些字符。您也可以简单地选择使用与您发布的图像中的布局相同的布局-这是一个具有32列的工作表,从空格字符32开始

使用字体渲染库,以所需大小单独渲染每个字符。请注意为每个生成的大小-例如,即使在相同的字体大小下,“.”将是小的,“w”将是大的。您不能只计算高度,还必须计算高于基线的高度和低于基线的高度。示例:如果“A”和“g”都是16像素高,则可能仍然需要一个高于16像素的矩形,以便在其中正确对齐-基线到基线。找到能够容纳所有这些大小的最小矩形大小-这是字体表中每个单元格的大小

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

其他提示:

使用抗锯齿。这会让你的字体看起来比纯字体更容易 单色 不要使用颜色,以灰度显示字体。libtcod 从灰度生成彩色文本的功能 字体表。 考虑你是否想要一个正方形字体。a的优点 方形字体是你的流氓世界中的圆圈的形状 屏幕上的圆圈。缺点是,方形字体是 通常更难看,更难阅读。
要以libtcod所期望的方式将TrueType字体渲染为位图,您应该使用单独的库-字体渲染是一项非常复杂的任务。FreeType是一个非常流行的用于字体渲染的开源库。您可以在此处找到Python接口:。你只需要在开发类似流氓游戏时使用的工具中使用FreeType,而不是在实际游戏中

首先,确定您将在roguelike中使用哪些字符。确定如何在字体表上布局这些字符。您也可以简单地选择使用与您发布的图像中的布局相同的布局-这是一个具有32列的工作表,从空格字符32开始

使用字体渲染库,以所需大小单独渲染每个字符。请注意为每个生成的大小-例如,即使在相同的字体大小下,“.”将是小的,“w”将是大的。您不能只计算高度,还必须计算高于基线的高度和低于基线的高度。示例:如果“A”和“g”都是16像素高,则可能仍然需要一个高于16像素的矩形,以便在其中正确对齐-基线到基线。找到能够容纳所有这些大小的最小矩形大小-这是字体表中每个单元格的大小

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

其他提示:

使用抗锯齿。这会让你的字体看起来比纯字体更容易 单色 不要使用颜色,以灰度显示字体。libtcod 从灰度生成彩色文本的功能 字体表。 考虑你是否想要一个正方形字体。a的优点 方形字体是你的流氓世界中的圆圈的形状 词 在屏幕上单击鼠标右键。缺点是,方形字体是 通常更难看,更难阅读。
PIL使用ImageFont很好地呈现字体。感谢您的回复!当我有机会的时候,我会尝试一下。PIL用ImageFont很好地呈现字体。谢谢你的回复!有机会的时候我会试试的。