我有一个想法,在像ASCII的流氓类游戏机中将汉字用作实体。我正在使用python-tcod,但是我不知道是否有使用中文字符的方法。
我尝试通过console_set_custom_font函数设置中文字体,该功能可以很好地显示英文字符,但不能显示中文字符。它们只是不显示。
libtcod.console_set_custom_font('GoJuOn.TTF', libtcod.FONT_TYPE_GREYSCALE)
libtcod.console_init_root(constants['screen_width'], constants['screen_height'], constants['window_title'], False, libtcod.RENDERER_SDL2)
我试图让我的角色看起来像你,但是明白了。 (您可以看到角色通过其FOV以及其覆盖物品的方式来移动。)
例如,以前就是这样。
源代码取自libtcod python tutorial
upd:我尝试对gb18030,gbk,gb2312,hz,cp950,bi0ghkscs,big5,iso2022_jp_2编码使用'你'.encode(),但它给了我错误的符号输出。例如,段落符号或tilda('〜'),或上面有点的几个字母。
upd2:我尝试与其他编码一起使用的代码
player = Entity(0, 0, '你'.encode('gb18030'), libtcod.white, 'Player',
render_order=RenderOrder.ACTOR, blocks=True,
fighter=fighter_component, inventory=inventory_component, level=level_component)
呈现char的通用代码('你'char是实体的char属性)
def draw_entity(con, entity, fov_map, game_map):
if libtcod.map_is_in_fov(fov_map, entity.x, entity.y) or (entity.stairs and game_map.tiles[entity.x][entity.y].explored):
libtcod.console_set_default_foreground(con, entity.color)
libtcod.console_put_char(con, entity.x, entity.y, entity.char, libtcod.BKGND_NONE)