这是最近两天小弟自制的辅助工具,可以通过http://loon-simple.googlecode.com/svn/trunk下载最新的LGame-0.3.3-Beta包获得(位于C#子类,tools文件夹下),文件名 【CharacterRegionTool(C#).exe】,不附带源码,不过也没有任何混淆,想看源码反向下也就是了(PS:此物乃标准.Net程 序,没有.Net环境无法运行。当然,没有.Net环境者同样无法进行XNA开发……)。
需要说明的是,该工具对已发布的Java(Android)版,以及尚未发布的C/C++与HTML5版没有任何影响或帮助,仅用于自动生成XNA开发中 【.spritefont】文件中的CharacterRegions元素,也就是生成xnb图像字体时所能编译出的具体中文字符(或其它特殊字符,阿拉 伯语之类~)。
之所以会增加这样一个小工具,源于XNA的运行环境并非全部支持GDI+编程(并不是所有环境都能调用到System.Drawing这一命名空间)。因 此,一旦我们希望程序可以在Windows、XBOX,WP7乃至Mono的扩展环境中同样运行游戏,我们就无法直接调取系统的TTF字体,来进行游戏开 发所必需的文字显示。而只能选择使用XNA自带的SpriteFont文字贴图方式(或者其他类似的文字贴图方式,比如LGame自带的BMFont 类)。
PS:不过,等LGame-0.3.3正式发布时,小弟会给C#版添加一个跨平台的TTF字体文件支持功能,注意,只是读取TTF文件,不能直接获得本地字库支持。
目前来说,SpriteFont在处理英文乃至欧洲其他国家文字时,不会有任何问题存在,因为字母是有穷的,只要我们设定好 CharacterRegions中字母表的区间范围,一种英文字体,产生出一个至多1MB左右的xnb文件,就已足够。但是,在设定中文字体时,则随便 导出一种汉字字体的完整支持,都将动辄产生出十几MB的xnb文件。而手动设定汉字字符又较耗时间,很难要求用户将长篇大论导分解成一个 个<CharacterRegion>……</CharacterRegion>子元素。
这种现实情况,势必影响到WP7、XBOX开发者的使用积极性(至少会影响到简体,正体用户的C#版中文游戏开发吧……),所以小弟为LGame增加了下 面这个小小的辅助工具(当然,就算不上LGame,需要.spritefont进行汉字支持的地方依旧可以使用。话说谁有空研究下用中文字根拼字造图啊, 原理依照永字八法啥的~),用以自动生成整篇中文的具体CharacterRegions元素,多少缓解下XNA下中文开发难的囧态~
运行示例图如下:
另外,不用担心字符重复,默认情况下已经剔除了重复元素:
_______________
另,明天有时间的话,小弟再整理点Java游戏源码发出来。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库