|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)在游戏开辟中,一样平常起首碰着的是笔墨,关于笔墨又必要字体的撑持,在XNA中,假如要利用笔墨,就必要先指定字体,关于字体XNA利用了SpriteFont和SpriteFontTexture两种体例来指定字体。 SpriteFont
这个字体文件实践上是一个XML的设置文件,用来设置字体、字体巨细、字体款式、字体编码局限。然后在编译时会按这个设置,将字体编译成.xnb二进制文件。
<?xmlversion=”1.0″encoding=”utf-8″?>
<XnaContentxmlns:Graphics=”Microsoft.Xna.Framework.Content.Pipeline.Graphics”>
<AssetType=”Graphics:FontDescription”>
<FontName>CourierNew</FontName>
<Size>32</Size>
<Spacing>2</Spacing>
<Style>Bold</Style>
<CharacterRegions>
<CharacterRegion>
<Start> </Start>
<End>~</End>
</CharacterRegion>
</CharacterRegions>
</Asset>
</XnaContent>
XNA也撑持中文,其设置办法是一样的。
<?xmlversion=”1.0″encoding=”utf-8″?>
<XnaContentxmlns:Graphics=”Microsoft.Xna.Framework.Content.Pipeline.Graphics”>
<AssetType=”Graphics:FontDescription”>
<FontName>宋体</FontName>
<Size>32</Size>
<Spacing>2</Spacing>
<Style>Bold</Style>
<CharacterRegions>
<CharacterRegion>
<Start>一</Start>
<End>龥</End>
</CharacterRegion>
</CharacterRegions>
</Asset>
</XnaContent>
下面看到的图看起来很奇异,为何要输出如许的中文,这是由于中文是用unicode来暗示的(这是unicode编码表中的前几个汉字),其编码区间是4E00(19968)―9FA5(40869),也就是说有2万多字,以是编译起来出格的慢,偶然还会让vs2010无呼应。由此看来,要开辟XNA中文版的游戏,呆板必定要好,要否则连编译都过不往。
第一个XNA程序HelloWorld!
一. 创立XNA工程,在Content工程下到场spritefont字体文件,并设置好所要用的字体。
在Game1.cs文件中,到场代码:
protectedoverridevoidDraw(GameTimegameTime)
{
base.Draw(gameTime);
SpriteBatch.Begin();
SpriteBatch.DrawString(Font,“HelloWorld!”,newVector2(100,200),Color.Red);
SpriteBatch.End();
}
protectedoverridevoidLoadContent()
{
base.LoadContent();
ContentManagercm=this.Content;
Font=cm.Load<SpriteFont>(“gamefont”);
}
示例下载:http://www.daisy123.com/?page_id=275testXNAFont.zip
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似java那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。 |
|