您现在的位置:主页 > 网络编程 > NET编程 >

一起学wp7 XNA游戏开发(三. 一 SpriteFont)

来源:建站吧 责任编辑:Jzq8 发表时间:2011-12-23 点击:
在游戏开发中,一般首先碰到的是文字,对于文字又需要字体的支持,在XNA中,如果要使用文字,就需要先指定字体,对于字体XNA使用了SpriteFont和 SpriteFontTexture两种方式来指定字体。

  SpriteFont

  这个字体文件实际上是一个XML的配置文件,用来配置字体、字体大小、字体样式、字体编码范围。然后在编译时会按这个配置,将字体编译成.xnb二进制文件。

<?xml version=”1.0″ encoding=”utf-8″?>
<XnaContent xmlns:Graphics=”Microsoft.Xna.Framework.Content.Pipeline.Graphics”>
      <Asset Type=”Graphics:FontDescription”>
           <FontName>Courier New</FontName>
           <Size>32</Size>
           <Spacing>2</Spacing>
           <Style>Bold</Style>
           <CharacterRegions>
                 <CharacterRegion>
                      <Start> </Start>
                      <End>~</End>
                 </CharacterRegion>
           </CharacterRegions>
      </Asset>
</XnaContent>

一起学wp7 XNA游戏开发(三. 一 SpriteFont)

  XNA也支持中文,其配置方法是一样的。

<?xml version=”1.0″ encoding=”utf-8″?>
<XnaContent xmlns:Graphics=”Microsoft.Xna.Framework.Content.Pipeline.Graphics”>
      <Asset Type=”Graphics:FontDescription”>
           <FontName>宋体</FontName>
           <Size>32</Size>
           <Spacing>2</Spacing>
           <Style>Bold</Style>
           <CharacterRegions>
                 <CharacterRegion>
                      <Start>一</Start>
                      <End>龥</End>
                 </CharacterRegion>
           </CharacterRegions>
      </Asset>
</XnaContent>

一起学wp7 XNA游戏开发(三. 一 SpriteFont)

  上面看到的图看起来很奇怪,为什么要输入这样的中文,这是因为中文是用unicode来表示的(这是unicode编码表中的前几个汉字),其编码区间是4E00(19968)—9FA5(40869),也就是说有2万多字,所以编译起来特别的慢,有时还会让vs2010无响应。由此看来,要开发 XNA中文版的游戏,机器一定要好,要不然连编译都过不去。

  第一个XNA程序 Hello World!

  一.       创建XNA工程,在Content工程下加入spritefont字体文件,并配置好所要用的字体。

一起学wp7 XNA游戏开发(三. 一 SpriteFont)

  在Game1.cs文件中,加入代码:

protected override void Draw(GameTime gameTime)
 {
            base.Draw(gameTime);
            SpriteBatch.Begin();
            SpriteBatch.DrawString(Font, “Hello World!”, new Vector2(100, 200), Color.Red);
            SpriteBatch.End();
        }
          protected override void LoadContent()
        {
            base.LoadContent();
            ContentManager cm = this.Content;
            Font = cm.Load<SpriteFont>(“gamefont”);
        }

  示例下载:http://www.daisy123.com/?page_id=275 testXNAFont.zip

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    验证码:点击我更换图片

    推荐图文

    • 构建高性能ASP.NET站点
    • ASP.NET MVC 3.0学习系列文章—NuGet and ASP.NET MVC 3.0
    • (asp.net c#)DropDownList绑定后显示对应的项的两种方法
    • Silverlight中同步调用WebClient的解决办法,是同步!
    • vs.net 2010 扩展插件小结 提高编程效率
    • 一起学WP7 XNA游戏开发(七. 3d基本光源)
    • 一起学WP7 XNA游戏开发(八. 让3d model动起来)
    • 一起学WP7 XNA游戏开发(六. 3d Model的载入)
    • 一起学wp7 XNA游戏开发(三. 一 SpriteFont)
    Alexa - 客户服务 - 联系方法 - 招聘信息 - 友情链接 - 网站地图 - TAG标签 - RSS订阅
    Copyright © 2010-2012 JZQ8.COM. 建站吧|建站去吧 版权所有
    冀ICP备09002514号
    冀ICP备09002514号 网络报警 企业法人营业执照 中国互联网协会 支付宝付款 网银在线付款