一起学wp7 XNA游戏开发(二. XNA Game 开发架构)

2010-10-14 18:40

一起学wp7 XNA游戏开发(二. XNA Game 开发架构)

by 小镇

at 2010-10-14 10:40:00

original http://www.cnblogs.com/randylee/archive/2010/10/14/1851021.html

      对于新建一个XNA for WP7的工程,可以看到在它的工程文件中,有:Initialize(), LoadContent(), Update(),Draw()这几个主要的函数,由这些也就可以看得出XNA开发游戏的一个基本架构了:

Loading:用来加载保证游戏可以正常运行的所有资源等,这个状态在整个系统中只在游戏开始前运行,也就是说整个游戏的生命周期中只运行一次。

Update:这个状态是由所设置的时间间隔来驱动的,在每个时间间隔里重新计算游戏中各角色的状态,以及游戏分值和各种游戏逻辑。一般默认为每秒30次(帧),如果设置间隔过大,游戏可能无法启动。

Draw:这个状态也是由所设置的时间间隔来驱动的,用来绘制各种变化到显示设置上。

对于XNA资源,在创建新的工程时,就一起创建了一个Content工程,所有的资源(图片、声音、视频、字体、3D造形、纹理等)都要加载到这个工程中,并被这个工程编译为.xnb格式的XNA二进制文件,这样才可以加载到游戏中,并被调用。

所支持的资源格式:

◦       Autodesk FBX format (.fbx)

◦       DirectX Effect file format (.fx)

◦       Font description specified in a .spritefont file

◦       Texture file. The following types are supported: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, and .tga

◦       Game audio specified in the Microsoft Cross-Platform Audio Creation Tool (XACT) format (.xap)

对于XNA游戏来说,还需要有输入来与游戏交互,如点击屏幕、各种传感器(如Accelerometer)等。相关的命名空间为:

Microsoft.Xna.Framework.Input:用于键盘、按钮、鼠标等的输入。在WP7上只有按钮可以用(back、start)。

Microsoft.Xna.Framework.Touch:用于触控的输入。其中又包括gesture和touch location。

另外,还有一个是Content Pipeline,它是XNA中很重要的一块内容。素材管线用于输入、编译和加载游戏资源,例如纹理、3D模型和声音文件。它大大减轻了用户在游戏中自己获取图像、3D数据和着色器的代码量。其包括的dll:

Microsoft.Xna.Framework.Content.Pipeline

Microsoft.Xna.Framework.Content.Pipeline.Audio

Microsoft.Xna.Framework.Content.Pipeline.Graphics

Microsoft.Xna.Framework.Content.Pipeline.Processors

Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler

Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate

Microsoft.Xna.Framework.Content.Pipeline.Tasks

作者: 小镇 发表于 2010-10-14 10:40 原文链接

评论: 1 查看评论 发表评论


最新新闻:
· Skype最新版支持用户与Facebook好友聊天(2010-10-15 11:16)
· 分析称雅虎被收购可能性大 CEO巴茨压力剧增(2010-10-15 11:08)
· Ubuntu Privacy Remix 10.04r1发布(2010-10-15 11:06)
· 视频演示:Ubuntu Netbook 上的多点触摸功能(2010-10-15 11:01)
· 快讯:传支付宝11月底即将推出开放平台(2010-10-15 10:57)

编辑推荐:程序员:编程给你现实生活带来了哪些坏习惯

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库