QQ登录

只需一步,快速开始

查看: 26828|回复: 4
打印 上一主题 下一主题

FlightGear 本地化工程

[复制链接]

主题

好友

618

积分

航院研究生

跳转到指定楼层
楼主
发表于 2012-6-11 00:57:49 |显示全部楼层 |倒序浏览
为了将FlightGear用上本地系统,我们小组对其进行汉化处理
1.菜单界面等汉化:FG的菜单使用plib库实现,plib使用了自己的txf字体,该字体对西方字库有优势,在菜单上使用了点阵字库,仿照该技术,我们使用了汉字点阵字库,考虑到界面大小,使用16位点阵字库HZK16,该字库及使用方法网上很多。具体工作是对plib的text输出部分修改,使之可以读出双字节内容。但经过试验,发现不能使用MultiByte方式,因为FG在传送字符串时,如果不是英文或数字的话,会采用UTF8方式传送,这会导致靠前区的汉字无法显示,因此,需要把菜单的xml文件改成UTF编码,注意使用无BOM的UTF8方式,可以使用Editplus软件来修改成UTF8方式。然后修改plib的字体显示函数,对utf8汉字编码进行译码,具体就是先对UTF8转成Unicode,在用系统函数把Unicode转成GB码,根据GB码到HZK中定位,后面读出点阵信息。显示部分就不用管了,plib自己做了。
2.txf字体,FG中的splash screen及部分显示部分使用了txf字体,网上有ttf2txf软件,并有部分代码,我们现在是做了一个微软雅黑的txf字库,替换掉了系统的默认字库,实现了汉字支持。
3.服务器, FGMS目前只有Linux系统,为了能在Windows下运行,需要对其进行移植,好在很多代码都是支持双系统的,主要对其Linux特有的函数进行替换,然后对main.cxx函数进行分析,移植核心代码到windows中,我做了一个对话框的MFC程序,启动服务用的servant.loop函数,为防止程序锁死,需要新建一个线程来执行loop,然后就OK了。
4.下一步目标:扩展服务器功能,目前服务器只实现了信息转发功能,需要对其进行扩展,加上客户控制,信息发送,综合显示等功能,再就是开发自己的飞机及场景,适应中国区的使用。
分享到: QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏1

主题

好友

618

积分

航院研究生

沙发
发表于 2012-6-13 17:15:57 来自手机 |显示全部楼层
今天成功把simgear的math库引入到了FGMS。因为后期我们计划在FG中加入自己的物体,如导弹,炸弹等。该物体的运动由服务器负责,SG的数学库还是很方便的,对于各种坐标系变换和运动,旋转都有现成的函数,OSG中也有一系列的代码可以利用。目前FGMS的主要技术都已解决。下一步计划以著名的“湾流”飞机为切入口,研究飞机的实现方法,因为该飞机比较具备典型性,主仪表板上按钮,旋钮,仪表,多功能显示器一应俱全。我们小组计划按人员分工分别对该飞机的各个系统进行分析,然后,创建我们自己的飞机。我们最终的目标是可以用自己的飞机进行自由空战。
回复

使用道具 举报

主题

好友

618

积分

航院研究生

板凳
发表于 2012-6-13 17:21:16 来自手机 |显示全部楼层
考虑到相关因素,我们小组不接受外部人员加入。我只在此不定期发布我们的工作进度,具体技术细节视情发布。我们有可能会出一本书,详细分析介绍FG的实现及修改方法。
回复

使用道具 举报

主题

好友

618

积分

航院研究生

地板
发表于 2012-6-29 16:32:25 来自手机 |显示全部楼层
fgpanel可以方便的调试面板。我们自己编了一个小软件,发送数据包,以驱动面板仪表等运动。但坐标的调整很辛苦,另外txf字体显示效果很差,想办法改进!这步工作完成后,就可以发动我们的组员设计飞机的仪表版了,我们几个负责程序的还要进行面板的开关按钮等部件的操作相应。计划争取不修改主程序,用NASAL实现,实在不行就改原程序。因为我们主要都是在WIN下工作,不太清楚linux.怕改了源码导致不能在linux下工作。另外发现FG的显示效果不好,没有反锯齿,研究一下增强显示效果
回复

使用道具 举报

主题

好友

618

积分

航院研究生

5#
发表于 2012-9-25 17:55:47 来自手机 |显示全部楼层
今天实现了plib库的动态化及汉化工作。原库是静态库,修改一下就要重新编译FG,太麻烦,干脆动态化了,由于主要修改fnt.所以改为dll实现。然后使用freetype库加载ttf字体进行汉字显示。经测试,效果不错,又攻下了一个山头。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入FG

本版积分规则

手机版|联系我们| FlightGear ( 吉ICP备19002044号-7 )

GMT+8, 2024-5-5 19:50

Powered by Discuz! X3.2

© 2001-2013 FlightGear Inc.

返回顶部