GameDesign 板


LINE

libgdx 帝国诞生中文显示方式心得 网路上比较常看到的作法是制作一张图档(png),以及图档对应的座标档(fnt), 利用内建工具Hiero,可以产生,详细范例如下 http://www.cnblogs.com/htynkn/archive/2011/11/11/libgdx_3.html 中华三国志II、2DRPG BludBourne都是这种方式产生,但这对中文来说负担有点大, 尤其如果发现缺字要补,图档还要重新产生。 可以在中华三国志II目录下 ZHSAN2-master\core\assets\Fonts 看到 DISU_BOLD1.png 等 多个图片档,里面都是这些文字。 帝国诞生则采用ttf直接生成 在ScreenManager可以看到 screenStorage = new ObjectIntMap<DefaultScreen>(10); FreeTypeFontGenerator generator = new FreeTypeFontGenerator(Gdx.files.internal("fonts/NotoSansCJKtc-Medium.otf")); FreeTypeFontGenerator.FreeTypeFontParameter param = new FreeTypeFontGenerator.FreeTypeFontParameter(); param.size = (int) (GamePreferences.sceneHeight / 42)-2; aram.genMipMaps = useMipMaps(); param.minFilter = useMipMaps() ? TextureFilter.MipMapLinearLinear : TextureFilter.Linear; param.magFilter = TextureFilter.Linear; //param.characters += ",。;:里征谍删钛氘铱历的"; FileHandle file = Gdx.files.internal("data/zh/chars.txt"); param.characters += file.readString("UTF-8"); scaledFont = generator.generateFont(param); generator.dispose(); // don't forget to dispose to avoid memory leaks! 重点在 param.characters += ",。;:里征谍删钛氘铱历的"; 这边一样要填入所有用到的中文字,然後就可以免去产生图档的问题。 至於要计算所有中文字,我是另外写支只扫描 data/zh/所有档案,然後透过HashMap存放 ,然後转成文字,这个相信大家都会啦。TTF中文字型部份,则找google的 NotoSansCJKtc-Medium.otf,这是可以免费授权使用的。 帝国诞生类似的地方有三个 1.ScreenManager 用在起始画面 2.ResourceManager 游戏画面 3.ResourceEditor 船舰、建筑物参数编辑器 所以改由 data/zh/chars.txt 这个地方统一读取 剩下就是中文、英文显示大小的问题 在 SkinManager里面 帝国诞生定义了smallFont~vsFont 等不同大小的字体,而且很贴心 的动态计算 // BitmapFont smallFont = screenManager.getRacialFont(playerRace.getRaceDesign().fontName, // (int) (GamePreferences.sceneHeight / 55)); BitmapFont smallFont = screenManager.getRacialFont(playerRace.getRaceDesign().fontName, 8); 这部份我偷懒,直接写死成感觉顺眼的大小。 另外内容的中文化方面,根据论坛的描述 只要另外建立 /android/assets/data/XX 如zh 中文 it义大利文等,翻译xml标签内文 字即可, 遇到 &#xa7;这类是取代文字,但中英文语句顺序不同,原本程式顺序是写在程式内,可 能会有点不通顺 例如 <SET_TARGET_FAILED>目标 &#xa7; 为了 &#xa7; 建筑在星系 &#xa7; 不可能达成 </SET_TARGET_FAILED> 要中文通顺,势必要修改程式码的顺序 还有要找一下他搜寻目录的方式,先判断en然後才是其他语文之类,读取编码方式中文改 成UTF-8等。 另外就是原本程式也没有考虑到文化,如中文可区分 zh_TW、zh_CN 但程式目前只考虑 zh。大概就这些吧。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.164.26
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1494255278.A.A55.html







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP