多层次探秘Windows Vista的区域与语言采取和多语言版本问题魔兽争霸

在此之前,一向想深入摸底下Windows Vista
Ultimate的英文版与普通话版有什么样详细的界别,因为Ultimate版辅助多国语言。这便萌生了写这篇小说的想法。

在沙盒游玩里,能随便建造是很重大的表征,比如说风靡全球的《我的世界》,用一个个四方就能搭建出规模宏大的社会风气。甚至有过激的人说,没有自由建造,就不是一个着实的沙盒游戏。的确,沙盒游戏的魅力有很大一些是能随便构建一个玩耍世界。看着自己一砖一瓦搭建起一个城堡世界会很有成就感的。

这篇著作涉及到注册表的三个键值:

现目前的手游,大多数就是一个格斗和照耀的世界。不管是传奇类的狂霸拽酷,仍然连续看,消消乐等好友排行,就是花费国人的虚荣心。其实,游戏是第九措施,要上升到点子的角度。在玩乐里,玩家需要一种心思的疏导和寄托以及体验。

在HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language下,

说了如此多,仍然回到正题。我是咋样在协调编辑的独立游戏《中世纪之路》里心想事成建筑物的摆放呢?

Default、InstallLanguage、InstallLanguageFallback

在落实那么些职能的时候,我先是考虑的不是代码。而是考虑其他娱乐是如何兑现如此效果的,有这多少个可以借鉴的地点。我先是想到了《魔兽争霸》里建筑物的摆放,可以自由的拖放。然后想到了《部落争持》(简称COC)里的修建放置模式,在COC里修建是按格子摆放的,在一个平面上。

1、介绍Default

在自身的玩耍《中世纪之路》里,我既不想让玩家一砖一瓦的搭建建筑,又想让玩家一下就把修建全部放置到地上了。我觉着像搭积木那样,既可以省去玩家时间,又有建筑的乐趣。选定了这种办法后,我即将考虑建筑模块的多少存储方法了:我急需仓储单个模块的三维空间里的坐标值(x,y,z的值),同时为了让模型选取,我还亟需仓储模型的旋转角度数。

Description

下一场,我还索要考虑什么用鼠标去实践这多少个操作。我构想的方案是:点击背包里的物品后,一个模子就动态暴发,然后跟随鼠标在地面移动。然后按”E”键就停放到地头上鼠标所指的职务(E键放置,是本身学《兽人必须死》得来的)。而组件的团团转呢?我考虑的是让鼠标滚轮(也就是中键)滚动时,就绕着Y轴转动。当然假若更近一步,可以完成绕三个轴都能随随便便旋转。具体操作见下图:

Indicates the system default locale . The value of this entry indicates
that locale 0409 (U.S. English) is used when no other language is
specified.

构筑摆放动画

它系统区域与语言选取的相关键值,对于System
locale,这里举办部分简约表达:

魔兽争霸 1

The system locale determines the default character set (letters,
symbols, and numbers) and font that you use to enter information and
that are used to display information in programs that do not use
Unicode. This allows non-Unicode programs to run on your computer using
the specified language. You might need to change the default system
locale when you install additional display languages on your computer.
Selecting a different language for the system locale does not affect the
language in menus and dialog boxes for Windows or other programs that do
use Unicode.

应用鼠标放置篝火

对于系统与区域采取,可以在控制面板中开展更改:

魔兽争霸 2

魔兽争霸 3

通过下边的操作,大家可以见到代码的兑现效益很好,完美达到了俺们的要求。可是想通了下面的操作原理后,还需要我们寻思来研讨,如何用代码来促成那个操作效能。这对新手来说可能过难了点,但对于有经验的开发者就能相比快的找到类似的缓解方案,然后加以革新。

即便system
locale更改为华语(中国),那么Default键值为0804,要是改动为斯洛伐克语(花旗国),则其键值为0409。要使更改生效,是需要重启系统的。

自我首先想到的是自身一度在哥哥大上做过2D积木的搭建效用。把大家的操作动作拆解开来,无非就是两个步骤:

魔兽争霸 4

1.首先次按动手指或者鼠标,找到起始坐标,让实体动态出现在坐标地方上。

举个例证,倘使您采纳的简体普通话软件的编码不是Unicode,可是区域语言采取设为美国日语,那么,程序将应运而生乱码,暴风影音就是:

2.然后判断移动意况,让实体跟随鼠标或者手指的移动。

魔兽争霸 5

3.终极抬起指头或者鼠标,让实体固定在最终的坐标地方,把坐标数据写入到文本或者数据库里。

自然对于Unicode编码的软件是未曾此外影响啊:

想精晓了这几个步骤,我们就内心底了,我们假如实现了这三步操作代码,基本上物体摆放功效就可以实现了。

魔兽争霸 6

在本人实现率先个步骤的时候,我就赶上了个问题。我事先在写搭积木游戏的时候是2D的,坐标很好收获。不过在《中世纪之路》里,我然则要取得的是鼠标在本土上的坐标点啊。我开首用的是两行代码:

故此,这多少个设置启动某些非Unicode程序以便用母语彰显菜单和对话。那不会影响到Unnicode程序。除了英文软件,假若您最常用到的是粤语软件,那么设为“普通话(中国)”为好。

Vector3 mousePosition= Input.mousePosition;    //获取鼠标所在的坐标

Vector3 mouseWorldPosition =Camera.main.ScreenToWorldPoint(mousePosition) ; //把鼠标的坐标变成3D游戏世界里的空间坐标

2、介绍InstallLanguage

 

Description

自我觉得自己的笔触是没问题的,结果运行代码一看。哈哈,建筑物完全不是摆在地面上的呀,是在上空的呀。后来查了相关文档才清楚,那个鼠标地点是鼠标在屏幕这多少个立得体上的职务(你可以想像屏幕是一个透明的立体墙,那么些墙是确立在地点上的)。再说得专业点,是从主录像机为起源,鼠标所指为终端的一个射线,与屏幕所在立体面相交的点。对于那个立体面的直观感觉,我们可以看看在3D空间里2D
UI界面所在的特别面。

Indicates the code page that corresponds to the localized version of the
product.

为此,下边两行代码是不可知化解问题的。不过这样一解析,我就接触到了射线的概念。我转念一想,即使本身找到那些射线和本地相交的纽带不就行了嘛!我们的思路就成为了以下的伪代码:

关于code
page的相关,请参考:http://www.microsoft.com/typography/unicode/cscp.htm

1.开立一个从主视频机为起源,鼠标所指为极端的一个射线Ray。

以此指示系统的固有安装语言。0804代表简体闽南语,0409代表美利坚合众国阿尔巴尼亚语。

2.找到Ray和地面Terrain的交点position。

其一键值有过多选用:

3.把物体的坐标动态创造于position。

应用一:

主旨代码如下:

就算如此Windows Vista
Ultimate可以因而设置爱尔兰语语言包来切换为英文界面,但它与英文原版有一部分细微差距吗?有的。请参考:

if (Input.GetMouseButton(0))
 {
     Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

       RaycastHit hit;

       if(Physics.Raycast(ray, out hit))
       {

               if(hit.transform.name=="Terrain")
               {
                           position = hit.point;//得到与地面碰撞点的坐标
               } 
        }
}

Windows Vista
中文版变英文版,享受更多权利??

 

自我就是这么设置成功Hold ‘Em Poker游戏的:

化解这么些基本难题后,移动的代码就很好写了。只要在手指或者鼠标移动的时候,动态更新物体的坐标为新的position就足以了。旋转物体的代码也可以写到一起,动态更新物体的转动度就足以了。这段代码很容易写了,我就不贴出来了,新手可以磨练自家出手能力。老手早就不用看在眼里了。当然需要提示的是这段代码是索要在update函数里去运转的。

魔兽争霸 7

最终的定点物体坐标的代码,也就演化成了把最后的position记录于文本或者写入数据库了。这多少个代码都不是有多难写的。

魔兽争霸 8

最后回想下,大家整个解决问题的思路:

应用二:

寻思操作步骤和章程->分解操作步骤->用代码实现分解后的操作步骤->完善和更正代码

记得Windows 7
RC出来时,很两人都争相体验了一把。可是,他们发觉喜欢的魔兽争霸3冰封王座无法运转,指示下边的一无是处:

设若我们问我要任何代码,坦白的说:我觉着”授人于鱼,不如授于渔”。大家能取得科学解决问题的笔触就够了,然后记住大旨代码就足以了。做程序员到一个“手中无剑,心中有剑”的境地就够了。当然新手依然多练练剑,比划比划下招式。

CD
Key不帮忙该语言版本之windows,或需要一定语言版本之windows。就算安装了国文语言包也是这样。

 

那么,可以将InstallLanguage原来的0409(原始安装为英文版)改为0804就可以啊。将语言界面切换为粤语,那个键值可不会同时更改啊。

PS:游戏DEMO试玩群:198035671  Unity3d技术互换群:308185833 
斗鱼游戏开发直播地址:www.douyutv.com/unity3d

魔兽争霸 9

诸如此类,便免了为玩一个娱乐重换系统,或用 UltraEdit
打开了魔兽争霸安装目录下的“game.dll”文件,查找到16进制串”3D04080000742A3D04″,将其中的74改为EB,保存,之后再也运行魔兽争霸程序。

应用三:

假定简体闽南语的vista
ultimate安装乌克兰(Crane)语语言包,实际上并不曾完全英文化,最显眼的反映就是开机时,看到的报到界面、“欢迎”都如故闽南语的。感觉就是中文系统套了一个小英文棉袄似的,看着相比怪。那么将InstallLanguage改为0409后,它们将都变成英文的啦,就像这么些系统本来就是英文的均等。

3、介绍InstallLanguageFallback

这么些值在中文版下值为en-US,大家可别以为自己系统为山寨的。别认为此版本是第三方实行汉化封装的。这表示出品本身的语言,任何一个其他版本都是由这些语言版本人工或机器翻译过来的。真正要验证是否为法定,可以看下语音识别是否有普通话识别、TTS是否能粤语输入以及在安装时显得的文字。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website