大家看完《手把手教用XNA开发winphone7游戏》后一定希望继续了解更多关于XNA和winphone开发的内容。
这里我开始我们 《手把手教用XNA开发winphone7游戏中级教程》,这里的游戏会更加的复杂,但是只要大家坚持,就可以做出优秀的做品(感谢http://winphone.us)
体系结构
Catapult Wars是一个基于Windows Phone Game State Management 的游戏。
游戏包括在以下屏幕:
• 主菜单 (MainMenuScreen 类)
• 说明屏幕 (InstructionScreen 类)
• 玩游戏 (GameplayScreen 类)
· 暂停 (PauseScreen 类)
游戏执行GameplayScreen 类的初始化过程中,加载游戏的特定内容。
当启动是,游戏的第一步操作是加载和显示背景屏幕,然后在主菜单屏幕。 一旦加载主菜单屏幕,显示后,用户可以访问的游戏在屏幕上动画显示菜单。
游戏开始运行,作为实际游戏的 GameplayScreen 类。
图 5 是已完成的游戏截图。
图5
Catapult Wars截图
第一部分 –基本的游戏项目与游戏状态管理
在这个环节,我们将创建一个Windows Phone 7 的XNA Framework游戏项目,并添加游戏状态管理功能。
1. 打开Start Visual Studio 2010 或者 Visual C# 2010 Express.
2. 在File菜单, 点击 New Project.
Visual Studio 2010: 在 File 菜单,指向 New 然后点击 Project。
3. 在New Project 对话框, 选择XNA Game Studio 4.0 类别:
a. 在installed templates 列表中,选择 Windows Phone Game (4.0)
b. 将项目名称设为 CatapultGame
c. 将解决方案名称设为Begin
d. 点击 OK
图2
Creating a new Windows Phone game application project in Microsoft Visual Studio 2010
4. 在 Solution Explorer中,查看Windows Phone 应用程序模板生成的解决方案的结构。在 Visual Studio 中,一种解决方案就是相关项目的一个容器。 在这个项目,它存放了一个名为CatapultGame 的Windows Phone 7 XNA Game Studio 4.0 项目和一个名为CatapultGameContent的相关游戏资源项目。
图3
在Solution Explorer 中查看CatapultGame 应用程序
Note: 解决方案资源管理器允许您查看项,并执行一个解决方案或项目中的项管理任务。 显示解决方案资源管理器,按 CTRL + W、 或者在视图菜单中选择 Other Windows | Solution Explorer。
这个生成的项目包括一个默认的游戏实现包含基本XNA Framework游戏循环。 它位于 Game1.cs 文件中。.
5. 打开 Game1.cs文件, 并修改它的名字为“CatapultGame.cs”。
6. 重命名主游戏类 (默认名为 "Game1") 为"CatapultGame"。要重命名,右键在类名上点击,选择Refactor -> Rename
图 4
重命名主游戏类
7. 在 Rename 对话框中,在New name中键入 CatapultGame,然后单击确定。
图 5
给主游戏类命名
8. 审查由 Visual Studio 建议的更改并单击 Apply。
图 6
将更改应用于主游戏类
9. 重命名该文件,以匹配新的类名。在解决方案资源管理器中, 右键点击Game1.cs并选择Rename。 为类指定新的名称 CatapultGame.cs。
图7
主游戏类文件重命名
一个XNA Game Studio 4.0应用程序,通常利用由基础平台或其他库提供的服务。 若要使用此功能,应用程序需要引用相应的程序集,实现这些服务。
10. 要展示项目应用程序集,在Solution Explorer中,展开References 节点,并查看列表。它包含标准的XNA Framework 程序集,以及特定的Windows Phone程序集。
图8
解决方案资源管理器显示由项目引用的程序集
Note: currently, the application does not do much, but it is ready for its first test run. In this step, you build the application, deploy it to the Windows Phone Emulator, and then execute it to understand the typical development cycle.
11. 在 View 菜单, 点击 Output 来打开 Output 窗口。
12. 点击 Build Solution 在 Debug 菜单,或者按下Shift + F6编译该解决方案中的项目。
Visual Studio 2010:选择Build 菜单中的Build Solution 或者按下CTRL + SHIFT + B 在解决方案中编译项目。
13. 观察Output窗口并查看调试过程中产生的追踪消息,包含一条追踪的结果信息。
图9
在Visual Studio中调试应用程序
Note: 您应该不会在现阶段观察任何错误,但如果项目包含编译错误这些将在输出窗口中显示。 若要对付这些类型的错误您可以利用错误列表窗口。 此窗口显示错误、 警告,并可以进行排序的列表中的编译器产生的消息和筛选器基于错误的严重性。 此外,您可以双击自动打开有关源代码文件并定位到错误的来源列表中的项。
14. 要打开Error List窗口,在view菜单中,点击Other Windows并选择Error List。
Visual Studio 2010: 打开Error List窗口,在view菜单中选择Error List。
图 10
Error List窗口显示错误在调试过程中
Note: 请注意您不应在此阶段遇到的任何错误。 此步骤只是说明如何访问错误列表窗口。
15. 确认部署目标为Windows Phone Emulator。做法为,找到工具栏上Start Debugging按钮旁的Select Device,确认Windows Phone 7 Emulator选项在Select Device下拉菜单中处于选中的状态。
图 11
选择目标设备来部署应用
Note: 当你通过Visual Studio部署你的应用时,你可以选择部署在真机或者仿真程序
16. 按 f5 键在Windows Phone Emulator中启动该应用程序。
Note: 请注意,一个设备仿真程序窗口将出现,而且出现一个短暂的停顿,这时Visual Studio在设置仿真环境和部署图像。一旦准备好仿真程序显示开始页,此后不久您的应用程序将显示在仿真器窗口中。
程序将显示一个简单的蓝色屏幕,没有任何其他所示。 对于一个早期阶段中的应用程序,这是正常现象。
图 12
在Windows Phone Emulator上运行应用
17. 请按下SHIFT + F5或者和点击工具栏上Stop按钮,来切断调试并且结束调试会话。这个时候要不关闭仿真程序窗口。
图13
结束调试会话
Note: 在启动调试会话时,它将要用一段来时间设置仿真环境和启动应用程序。 为了简化您的调试体验,避免关闭仿真程序。 这样一旦运行仿真程序,只需要很少的时间停止当前会话, 编辑源代码,然后构建和部署新的图片,为您的应用程序启动新的调试会话。
现在是时候给我你们的程序加上游戏状态管理功能。这将帮助我们在下一步给游戏添加screens 和menus 。
18. 在资源解决方案管理器时中, 用鼠标右键单击 CatapultGame,然后指向并Add单击New folder。此步骤将为游戏状态管理代码添加一个项目文件夹。
图 14
添加一个新的项目文件夹
19. 新创建的文件夹命名为ScreenManager.
20. 选择 ScreenManager 文件夹并下载包中的 Assets\Code\ScreenManager 下的文件夹中添加所有的文件。添加现有项目的方法,用鼠标右键单击资源解决方案管理器时中的 ScreenManager ,然后指向Add点击Existing items。将出现选择文件对话框。 下载文件/Files/zouyuntao/AssetsCatapultWars.rar
图 15
向项目中添加现有项目
21. 导航到上一步中指定的路径,选择所有的源代码文件,然后单击Add按钮。
图 16
向项目中添加 ScreenManager 源代码文件
22. 审查解决方案资源管理器。 解决方案资源管理器视图应该看起来像图17。
图 17
解决方案资源管理器后添加 ScreenManager 文件夹和代码
23. 再次生成解决方案,它应编译没有任何错误。 我们还没有对程序框架做过多的修改。
下载文件/Files/zouyuntao/AssetsCatapultWars.rar