`
feipigwang
  • 浏览: 744040 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

第一部分:基础知识(第一章)一个XNA 手机程序

阅读更多

接下来我们编写一个在在屏幕中心显示一些问候的XNA程序。而文本往往在Silverlight应用非常普遍,通常作为文字描或如何游戏或展示分数。这是一个“Hello,world”不能作为完整的XNA程序的研究或范例。

事实上,XNA没有任何内置的字体。你可能会认为一个XNA的手机程序可以使用和Silverlight相同的本地字体,但事实并非如此。 Silverlight使用基于矢量的TrueType字体,但XNA不知道有这些外来的概念东西。在XNA,一切都是一个位图,包括字体。

如果你要将你的特定字体包含在你的XNA项目中,则该字体必须作为包含每个字符位图的集合嵌入到可执行文件中。XNA Game Studio (集成 Visual Studio) 可以常容易的嵌入的字体,但它会引发一些棘手的法律问题。除非法律允许可以分发嵌入的字体,大部分字体与 Windows 本身或 Windows 应用程序一起分发的,但这并不是商业上的。

为了帮助你解决这一法律困惑,微软授权使用的某些字体公司专为让您嵌入在您XNA方案中。在这里,他们是:

clip_image002

请注意,Pericles字体授权使用小写字母,所以它可能只适合作标题。

从Visual Studio文件菜单选择New 和Project。在对话框的左侧,选择Visual C#和XNA Game Studio 4.0。在中间,选择Windows Phone Game(4.0),选择位置,并输入项目名称XnaHelloPhone。

Visual Studio创建两个项目,一个是程序和程序的其他内容。XNA程序通常包含的内容很多,主要是位图和三维模型,但也适合字体。要添加字体到此程序,请右键单击该项目项目内容(标有“XnaHelloPhoneContent(cintent)”,并从弹出式菜单中选择Add 和 New Item。选择Sprite Font,完成文件名作为SpriteFont1.spritefont,然后点击Add。

单词“sprite”是在游戏编程中的常见,通常是指一个小位图,可以移动很快,像魔法森林中可能遇到的精灵。在XNA,甚至字体也是sprite。

你会看到SpriteFont1.spritefont显示在内容目录的文件列表了,你可以编辑XML文件的被描述的字体。

XNA Project: XnaHelloPhone File: SpriteFont1.spritefont (complete w/o comments)

<xnacontent xmlns:graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics"></xnacontent>

<asset type="Graphics:FontDescription"></asset>

<fontname>Segoe UI Mono</fontname>

<size>14</size>

<spacing>0</spacing>

<usekerning>true</usekerning>

<style>Regular</style>

<characterregions></characterregions>

<characterregion></characterregion>

<start></start>

<end>~</end>

标签的字体名内你会看到Segoe UI Mono,但是你可以更改为其他字体是我前面列出。如果你想Pericles Light,放的全名在那里,但如果你想 Miramonte粗体或Pescadero粗体或Segoe UI Mono 粗体,只使用Miramonte或Pescadero或Segoe UI Mono,并输入标签之间的Bold样式。您可以使用其他字体为粗体,但对其他字体,粗体将被合成,而Miramonte或Pescadero或Segoe UI Mono,你会得到真正的设计的字体。

Size标签的指示字体的point大小。XNA在Silverlight中,你几乎可以完全处理像素坐标和尺寸,但point与point之间,在XNA像素间的转换是以96 DPI的显示器为基础。 14点的大小成为了在您XNA程序中18-2/3像素大小。这是非常接近Silverlight WindowsPhone中 15point20px的“标准”字号。

该文件的CharacterRegions部分表示你需要的Unicode字符的十六进制编码范围。默认设置从0x32到0x126包括所有的ASCII字符集的非控制字符。

分享到:
评论

相关推荐

    XNA中文教程《XNA入门指南》第一章

    国内第一本XNA教程中文《XNA入门指南》,经《A Beginners Guild to XNA》原作者 Mike Fleischauer 书面授权中国XNA开发网翻译!书中如有错误请访问www.ChinaXNA.com 或者 www.XNADev.cn

    XNA中文教程Word版(共14章)

    第1章XNA介绍.doc 第2章创建你的第一个游戏Pong.doc 第3章辅助类.doc 第4章游戏组件.doc 第5章编写自己的XNA图形引擎.doc 第6章管理Shader.doc 第7章实现法线映射.doc 第8章 添加天空和地面.doc 第8章Post-Screen ...

    第1章XNA介绍

    作为一个游戏程序员,你或许知道 DirectX ,甚至也许具有XNA 框架的基础知识。 这一个章节解释了如何安装 XNA Game Studio Express 和如何以有效率的方式使用它。它也包含相当多的技巧,这些技巧甚至可能对任何一个...

    XNA:管理Shader

    在开始下几章炫酷的normal mapping effect或者post screen shader之前,你首先必须学会基础。shader不仅仅用于高质量的特效,也取代非常简单的渲染过程,这些处理曾经被用在固定功能管道的渲染。在学习了一点儿...

    XNA高级编程:Xbox 360和Windows

    第1章XNA介绍,第2章创建你的第一个游戏Pong,第3章辅助类,第4章游戏组件,第5章编写自己的XNA图形引擎,第6章管理Shader,第7章实现法线映射,第8章 添加天空和地面………………

    XNA入门指南-第一章

    XNA入门指南,,入门级 XNA入门指南 XNA入门指南

    XNA游戏代码部分一个2D,1个3D的可以参考

    XNA游戏代码部分一个2D,1个3D的可以参考XNA游戏代码部分一个2D,1个3D的可以参考

    XNA中文手册 XNA中文手册

    XNA中文手册XNA中文手册XNA中文手册XNA中文手册

    原创:C# xna 3.1 小游戏 Beta 1.0

    4)网络通讯(这部分就大了,因为有计划写局域网版,想写成广域网版,但技术还不到,加积累。) 网络通讯,延申的就多了:组队系统,聊天系统(私,队,公,世界),角色信息改变事件发送给各各角色的状态信息...

    Windows Phone 10. XNA 3D 模型浏览器

    当年您也可以使用Silverlight来写游戏,或者使用XNA来编写一个以数据为中心的应用程序。每个应用程序框架都有其自身的优势;选择合适的编程模型,可以使您的生产率大幅提高,并且缩短应用上市时间。 在Windows Phone...

    Direct_3D与XNA游戏开发基础(C#版)

    介绍了Direct_3D的基础知识与XNA游戏开发基础

    Windows Phone开发-XNA基础

    Windows Phone开发-XNA基础

    XNA学习资料,XNA

    XNA学习资料,XNAXNA学习资料,XNAXNA学习资料,XNAXNA学习资料,XNA

    XNA高级编程:Xbox 360和Windows 电子书

    中文名:《XNA高级编程:Xbox 360和Windows》 英文名:Professional.XNA.Game.Programming.For.Xbox.360.and.Windows 很好的学习3D编程的教材

    XNA Game Studio 4.0.4 (2012).zip

    XNA Game Studio 是一个整合式的游戏开发环境,能够支持程序设计师使用 C# 程序语言,搭配其提供的工具和类别库设计游戏程序,其第一版发表于 2006 年 12 月,这个版本只能支持程序设计师开发能够在 Windows 平台和 ...

    xna4.0 中文 + 源码

    xna4.0 中文 + 源码 这个xna教程很不错。源码也在里面。

    XNA 3D 演示 例子

    一个 XNA3.0例子 一个 XNA3.0例子

    xna_demo(a demo for xna)

    xna a demo for xna a demo for xna a demo for xna

    XNA游戏:手势触控

    XNA游戏:手势触控

    XNA游戏:重力感应

    XNA游戏:重力感应

Global site tag (gtag.js) - Google Analytics