XNA平台开发游戏中文教程 下载本文

4. 创建开始, 和您将看在窗口上实时显示创建状态(注:类似即时渲染)。在这种情

况下, HelloWorld信息连同输入的文件的目录一起被显示。 浏览创建报告 在成功的创建后,你将注意到创建报告的面板出现主窗口 这时候设计面板是开放的 但是它被创建报告遮着。使用tabs located让起在顶层显示设计面板和创建报告 。从创建报告面板显示的每个的名字是在ImageList组文件(ImageList asset group. )。

(三)

指南 3: 定制任务

这个过程延续指南2中描述的如何建立XNA Build工程. 此过程将告诉你如何在XNA Build 系统中建立和添加一个定制的任务, 并且接下来还将告诉你如何在build pipeline中进行这个任务

这个过程主要围绕下面各个步骤展开.

1. 安装 ConvertToJpegTask 任务 2. 打开一个已创建的XNA Build工程 3. 从设计界面中删除一个任务 4. 增加一个 ConvertToJpegTask 任务到当前项目 5. 操作转化进程

安装 ConvertToJpegTask

XNA Build不需要借助XBOX360也可以进行各种有用的工作. 然而, 添加定制的任务对于一些特别的游戏工作室的特殊需要来说通常是必需的. XNA Build 对于定制的任务提供非常高扩展性的插件模型.安装定制的任务是一个将所有工具放置入一个目标目录的简单过程

创建一个被称为“MyCustomTasks”的子目录,它存在于C:\\Program Files\\MSBuild\\Microsoft\\XNA\\Plugins directory中.

复制定制的任务集 (Microsoft.Xna.Utilities.ConvertToJpeg.dll) 到一个新的目录.这个集合被安置在C:\\Program Files\\XNA\\Tutorials\\.

一旦定制的任务被安装后,开始运行 XNA Build, 并且确保它在“MyCustomTasks”任务栏中可见

打开一个已创建的XNA Build工程

用下面的方法打开一个已创建的XNA Build 工程.

1开始运行 Visual Studio.

2选择 File 菜单, 点击 Open, 然后点击 Project/Solution.

3从“指南 1”中找到你保存HelloWorld 工程的位置, 并且选择HelloWorld.sln 文件 4点击 OK.

现在,伴随着许多其它窗口,包含有你刚才找到的那个HelloWorld 工程的任务窗口一齐出现在设计界面上了 从设计界面删除一个任务

这个指南的主要目的是用一个定制的ConvertToJpegTask 任务取代HelloWorld 消息任务. 在设计界面,选中HelloWorld 对话框,按一下键盘上的“Delete”键,这样HelloWorld 任务以及它的关联者就一起从你的眼前消失了

增添一个ConvertToJpegTask 任务

用下面的方法在当前的工程中添加一个定制的任务.

1. 在 Toolbox 窗口, 点击 My Custom Tasks 任务栏. 2. 将 ConvertToJpegTask 任务 拖到设计界面上.

3. 重命名 ConvertToJpegTask 任务对话框, 使其成为 \,注意,“JPEG”和“Conversion”间应保持一点间隔. 在选择了定制任务对话框之后注意到它的属性并且记住(“dockable”)的那个值.现在保持默认

4. 用Connector连接 ImageList 到 InputFiles [Required] 新定制的任

务的特性 5. 在Design任务栏中点击 Pointer以恢复默认指针默认的功能特性. 6. 保存并且重建工程.

之后Build Report 一栏会显示建立的结果. 检查 C:\\Program Files\\XNA\\Tutorials\\ 目录并且确认有五个新的 .jpg 文件和.png文件一起被创建,已确保此次转化完成 操作转化进程

XNA一个新的强大的特性就是可以为一个任务的某个输入项改变任务本身的特征值,或者改变其通过继承得到的特征值. 举例说,一个美工可以在ConvertToJpegTask任务中改变所有要求被定制成128x128大小的JPEG图片的高和宽.再比方说,美工可以将一个单一.png文件的压缩率改变到100%, 这样大的压缩率最终将其转变为JPEG格式. 这里有一个范例,用下面的方法更改一个单一.png文件的属性

1. 在 Solution Explorer 标签, 点击第一个 .png 文件. 2. 在 Properties 窗口, 改变压缩率的值,使其变成1.

3. 在 Properties 窗口, 改变 Height 和 Width 的值,使其变成50. 4. 保存工程并且重建它

第一个 .jpeg 文件现在有了一个很高的压缩率,因此它比其它的文件更小,

教程4:Output Groups 和 Build Timeline

本教程是对前三个教程的概念的扩展,示范了一个build asset pipeline中有多件任务该怎么做,以及怎样使用output groups在不同任务中传送数据。本教程假定你已经对前面的教程概念的论述有一定的熟悉。因此,没有像前面的教程一步一步的进行指导。

本教程包含以下步骤:

1. 2. 3. 4. 5. 6. 7.

打开一个现有的XNA Build Project. 在Build中添加一个新任务群(Tasks).

为新任务群(Tasks)创建一个输出资源组(Output Asset Groups). 在新任务群之间添加先后顺序(Sequencing). 核实默认的编译目标.

用Build Timeline验证正确的执行顺序. 生成XNA Build Project.

打开一个现有的XNA Build Project

1.打开教程3中的HelloWorld project。一旦解决方案读取完毕,build pipeline就将在设计面板上出现。 在Build中添加新任务群

在本步骤中,build pipeline被修改以包含一个素材的目录(被称作纹理源Texture Sources)。那些在原创图形列表资源组(original ImageList asset group)中的文件将被优先拷贝进目录来请求JPegConvertTask。以下展示了一些重要的步骤。 1. 2. 3. 4.

从XNA任务盘(task palette)中拖拽一个MakeDir任务到设计面板上。 把本任务重命名为CreateTexturesDirectory。

点击Directories[Required]属性文件,然后点击Browse按钮。 在String Collection Editor对话框中,输入要创建目录名(使用C:\\TextureSource for this walkthrough),然后点OK。

5. 6.

从XNA任务盘(task palette)中添加一个Copy任务到设计面板上。 重命名这个任务外形(task shape)为CopyTextures。

为新任务群(Tasks)创建输出资源组(Output Asset Groups)

一个输出资源组( Output Asset Groups )类似常规的资源组。不同于手动创建,它将基于任务的输出(output)而被自动创建。从本build pipeline来说,这些组(groups)将被用来传送来自MakeDir任务 到 Copy任务中的最近创建的新目录名,同样,它也传送那些从Copy任务到JPegConvertTask task任务中的被拷贝的文件的名字。下面将展示一些重要的步骤。

注意:输出资源组( Output Asset Groups )并没有UI图标。在任务中,它们被属性系统创建,而且这些任务必须被构造(constructed)以支持输出数据到输出资源组( Output Asset Groups )。 1.选择一个CreateTexturesDirectory任务外形。

2. 在DirectoriesCreated[Output](目录创建[输出])属性中,输入输出资源组( Output Asset Groups )的名字(这里用TexturesDirectory),按回车。 一个输出资源组( Output Asset Groups )任务的外形以TexturesDirectory的名字在设计面板中被创建,并且你将看到从CreateTexturesDirectory任务外形到TexturesDirectory输出资源组( Output Asset Groups )任务外形出现一个连接器箭头。这种资源组( asset group)被不同的颜色标记以帮助你能将它和常规资源组(regular asset group)分开。

3.使用Connector工具,将TexturesDirectory输出资源组(output asset group task)的外形连接到 CopyTextures任务的Destination Folder属性中。

CopyTextures任务现在有了目录的地址,以将文件复制到里面。但是,哪些文件将被复制进目录,现在仍然不知道。

4.点击开发任务盘(Design task palette )中的指示器(Pointer)来恢复默认的鼠标指针功能。

5.选择JPEG转换任务。

6.点击InputFiles[Required](输入文件[需求])属性。 7.点击Browse按钮并删除其中的内容。 8.点击OK。

9.把ImageList asset group任务的外形连接到CopyTextures任务外形的