对于新建一个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
本文作者:未知