gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 22:56:36 25 4
gpt4 key购买 nike

我继续在我的 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 格式字体。谢谢。

最佳答案

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

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

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

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

其他提示:

  • 使用抗锯齿。这将使您的字体看起来比纯字体更容易单色。
  • 不要使用颜色,以灰度呈现字体。 libtcod 有从灰度生成彩色文本的功能字体表。
  • 考虑是否需要方形字体。的优势方形字体是你的 roguelike 世界中的“圆圈”看起来像屏幕上的圆圈。缺点是方形字体通常“更丑陋”且更难阅读。

关于python - 如何制作字体表(用于python roguelike),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15324475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com