已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章 基于Visula C+ 2010开发Windows Phone 7应用第5章 基于Visual C+2010开发windows phone 7应用Windows Phone 7 是 Microsoft 的新一代智能电话平台,它允许用户安装并使用一些高级应用程序,并赋予开发人员创建此类应用程序的能力。Windows Phone 7 应用程序采用我们熟悉的工具来开发,比如 Visual Studio 2010、Silverlight 和 XNA。因此,开发人员利用现有技能即可创建功能丰富的智能电话应用程序。作为一个安全的平台,Windows Phone 7 应用程序可以利用通过云提供的很多服务和资源。5.1 配置开发Windows phone 7的开发调试平台Windows Phone 7开发环境的搭建,我们需要到微软的网站下载Windows Phone Developer工具集。(/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203&displaylang=en)这个版本包含了四个软件,All-in-one,不需要一个个下载。Visual Studio 2010 Express for Windows Phone CTP Windows Phone Emulator CTP Silverlight for Windows Phone CTP XNA 4.0 Game Studio CTP 需要注意的是这软件需要安装在Vista或者Windows 7下面,不再支持Windows XP。搭建wp7时,需要Vista or Windows 7系统,打开VS 2010后,存在一些变化,一方面Windows Phone提供了两种不同的开发平台:Silverlight for Windows Phone和XNA 4.0,但从另一方面而言,以前Windows Mobile的C+和.NET Compact Framework都用不上了。所以,以前的Windows Mobile程序员也要经历一个痛苦的转型过程。5.1.1 搭建Windows phone 7的开发平台1安装VS2010 正式版:(这部分可以省略)2下载并安装 新版的 Windows Phone开发工具WPDT CTP装好后 开始菜单中多了 “Microsoft Visual Studio 2010 Express for Windows Phone” 建议用正式版的VS2010 。3. 打开 VS2010 正式版File -New-Project.如下图5.1图5.2按照如上Visual C+ 下多了 Silverlight for Windows 和 XNA Game Studio 4.0,这就说明安装成功了。1. 新建一个测试工程:a) 新建 一个 Application,将其命名为HelloWrold;b) vsual C+ -Silverlight for Windows - Windows Phone Application;c) 添加一个 TextBlock 修改 Text 属性为“HelloWorld Windows Phone 7”;d) 按F5 快捷键运行:VS2010 弹出一个 Windows phone 模拟器。图 编写第一个Windows Phone 7程序1. 启动Visual Studio 2010 Express for Windows Phone图5.42. 打开欢迎页面,这里有一些链接可以下载Windows Phone 7相关的文档和视频。图5.53. 新建一个Window Phone Application项目,叫做HelloWorldWindowsPhone。图5.64修改MainPage.xmal的TextBlock textBlockPageTitle 和 textBlockListTitleCode Snippet.5.5增加一个按钮Code Snippet.6. 增加按钮处理事件Code Snippet1.private void button1_Click(object sender, RoutedEventArgs e)2.3.textBlockListTitle.Text = Say Hi!;4.一个demo程序就完成了。7. 点击F5启动Emulator进行调试图5.7进入我们编写的程序:图5.8点击按钮图5.9Windows Phone 7的开发环境部署非常的简单,开始Windows Phone 7的旅途吧!5.1.3 Silverlight for Windows PhoneSilverlight for Windows Phone虽然相对发行较晚,但所有Windows Phone上的应用必须用Silverlight来写。Silverlight最大的优势在于与Expression Blend的无缝整合,可以快速设计出非常漂亮的用户界面,将程序员从繁琐的UI开发中解放出来。而且Silverlight for Windows Phone不再是Silverlight的子集,而是支持Silverlight的全部功能。这样的好处是,已有的Silverlight程序很容易移植到Windows Phone手机上。在程序菜单的XNA Game Studio 4.0下打开VS 2010,创建一个新工程,在Visual C+下找到三个模板,选择”Windows Phone Application”。图5.10点击OK后,会直接进入IDE的主界面:图5.11左边是工具栏,可以拖拽控件到UI设计器上,与XAML界面对应。此时拖拽了一个Button和一个TextBox上去。双击Button,进入了代码编辑器。namespace WindowsPhoneApplication1public partial class MainPage : PhoneApplicationPagepublic MainPage()InitializeComponent(); SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape; private void button1_Click(object sender, RoutedEventArgs e)MessageBox.Show(Hello, Windows Phone, + textBox1.Text);编辑完成后,直接按F5,Windows Phone Emulator会被启动。程序运行起来就是下面这个样子。MessageBox弹出来后,会有一个大大的Error标题,看起来MessageBox在Windows Phone里主要是用来显示错误的。另外就是输入法,带有明显iPhone的痕迹,不过对电容屏的支持看来不是问题了。图 XNA 4.0在移动开发界,XNA还不是一个响亮的名字,但是在游戏开发界,Xbox 360上的XNA则是泰山北斗级的开发技术。XNA不仅仅是一个.NET的游戏开发平台,还包括了很多支持Xbox Live服务的功能,比如,Avatars技术支持在游戏中显示用户设计的形象。希望这项技术能够和同名电影一样,改变移动游戏开发的历史。Windows Phone支持的是XNA 4.0,与Zune HD上的XNA 3.1有啥区别?支持3D游戏!目前我们看到的这个XNA 4.0预览版只支持Windows Phone开发,不支持Windows和Xbox 360的游戏开发。Silverlight for Windows Phone是典型的事件驱动型应用程序。而XNA是由时间驱动的应用程序,这也是游戏开发技术的典型特点。每隔固定时间,系统会触发Update事件,使程序得以更新。不那么多废话了,创建个XNA 4.0的新工程吧!图5.13选择Windows Phone Game就好了。IDE环境下没有界面编辑器,需要程序员通过代码来实现UI。XNA程序的结构非常简单,程序员只需要实现几个简单的方法,就可以实现一个简单的XNA程序了。这些方法包括Initialize初始化方法、LoadContent加载文件、Update更新内容和Draw绘制等方法。下面是示例代码片段:protected override void LoadContent() /Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); texture1 = Content.Load(winphone); texture2 = Content.Load(winphone); soundEffect = Content.Load(WindowsDing); spritePosition1.X= 0; spritePosition1.Y = 0; spritePosition2.X = graphics.GraphicsDevice.Viewport.Width - texture1.Width; spritePosition2.Y = graphics.GraphicsDevice.Viewport.Height - texture1.Height; sprite1Height =texture1.Bounds.Height; sprite1Width = texture1.Bounds.Width; sprite2Height = texture2.Bounds.Height; sprite2Width = texture2.Bounds.Width; LoadContent方法中使用Content.Load方法来加载资源文件,这些文件也是作为资源被加载到XNA程序中的。protected override void Update(GameTime gameTime) / Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back = ButtonState.Pressed) this.Exit(); / Move the sprite around. UpdateSprite(gameTime, ref spritePosition1, ref spriteSpeed1); UpdateSprite(gameTime, ref spritePosition2, ref spriteSpeed2); CheckForCollision(); base.Update(gameTime); Update方法负责更新元素的位置,进行碰撞检测。如果后退键被按下,则退出程序。protected override voidDraw(GameTimegameTime) GraphicsDevice.Clear(Color.CornflowerBlue); / TODO: Add your drawing code here / Draw the sprite. spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend); spriteBatch.Draw(texture1, spritePosition1, Color.White); spriteBatch.End(); spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.Opaque); spriteBatch.Draw(texture2, spritePosition2, Color.AliceBlue); spriteBatch.End(); base.Draw(gameTime); Draw方法对更新后的元素进行绘制。我们的第一个XNA程序会显示两张图片,这两张图片会在屏幕中运行,运行到边缘时,会反弹回来。图 调试技巧我们来谈谈调试,以及一些可供我们用来优化应用程序的工具。 Application.Current.Host.Settings如果打开你的App.xaml文件,会看到有这样的语句:/Showgraphicsprofilinginformationwhiledebugging.if(System.Diagnostics.Debugger.IsAttached) /Displaythecurrentframeratecounters.Application.Current.Host.Settings.EnableFrameRateCounter=true;/Showtheareasoftheappthatarebeingredrawnineachframe.Application.Current.Host.Settings.EnableRedrawRegions=true;/Enablenon-productionanalysisvisualizationmode,/whichshowsareasofapagethatarebeingGPUacceleratedwithacoloredoverlay. Application.Current.Host.Settings.EnableCacheVisualization=true; 这段代码打开了一些工具,当你调试时它们可以提供大量的程序中正在发生的信息。 EnableFrameRateCounter这是唯一一个默认被打开的工具,它允许你在程序运行时监视应用程序的帧速率。你会注意到所有这些工具都被包含在一个if语句中(Debugger.IsAttached),这是因为你并不会在最终的产品程序中使用它们。这些工具是专用于调试的。检验调试器还是解锁菜单,测试你的试用版程序这类事情的好方法。当你调试时可以打开某些东西,而在其他状态下不用去管它们。电影业的标准是每秒24帧,你可能不需要这么多,除非是在你的程序中有复杂的动画或移动。在Wikipedia上有一篇关于“视觉暂留”( Persistence of Vision,指当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.5秒左右的图像的现象)的非常优秀的文章。图5.15 EnableRedrawRegions打开这个调试设置来看看在你的应用程序中矩形会在哪儿被重绘。当打开后你可以看到被重绘的内容因为重绘区域是兰色的。在获得较低帧速率时这一点变得非常重要,你可能不知道为什么。这是因为应用程序将屏幕中的一部分进行了重绘,即使它很不明显。图5.16 EnableCacheVisualization另一种重叠色,EnableCacheVisualization向你展示页面中哪些区域使用了GPU加速功能。你可能会期待视频和动画能充分利用它,但我想你会在GPU处理图像的频率上感到惊讶。图5.175.2基于Visual C+2010开发windows phone 7 的计算器搭建好Windows Phone 7 的环境后,我们首先来看一个个简单的计算器的开发。首先打开:Microsoft Visual Studio 2010 Express for Windows PhoneFile-New Project-Visual C#-Silverlight for Windows Phone-,然后给solution叫个名字这里我是叫WphoneDemo,新建后打开MainPage.xmal的文件,在布局方面为了使界面简洁所以我把TitleGrid删除,把ContentGrid上下左右居中,然后在里面添加相应的按钮,就拖下控件就OK了。需要注意的是要把文本框设置成只读这样可以避免输入数字以外的字符。接下来简单说明下MainPage.xmal.cs中的逻辑代码。首先定义一个操作符的枚举:private enum OperateNoPlus, Minus, Multiplied, Divide,Mod 然后是保持操作符的变量:private OperateNo caleOperat;以及两个操作值的变量:private int fristValue = 0;private int secondValue = 0;数字按钮的代码:private void btn0_Click(object sender, RoutedEventArgs e)if (this.isZero(this.txtResult)this.txtResult.Text = 0;elsethis.txtResult.Text += 0;其他键类似。操作符按钮代码:private void btnPlus_Click(object sender, RoutedEventArgs e)if (!string.IsNullOrEmpty(this.txtResult.Text.Trim()this.fristValue = int.Parse(this.txtResult.Text.Trim();this.txtResult.Text = ; this.caleOperat = OperateNo.Plus;等号代码:private void btnResult_Click(object sender, RoutedEventArgs e)if (!string.IsNullOrEmpty(this.txtResult.Text.Trim()this.secondValue = int.Parse(this.txtResult.Text.Trim();switch (this.caleOperat)case OperateNo.Plus:this.txtResult.Text = (this.fristValue + this.secondValue).ToString();this.fristValue = int.Parse(this.txtResult.Text.Trim();break;case OperateNo.Minus:this.txtResult.Text = (this.fristValue - this.secondValue).ToString();this.fristValue = int.Parse(this.txtResult.Text.Trim();break;case OperateNo.Multiplied:this.txtResult.Text = (this.fristValue * this.secondValue).ToString();this.fristValue = int.Parse(this.txtResult.Text.Trim();break;case OperateNo.Divide:if (0 != this.secondValue)this.txtResult.Text = (this.fristValue / this.secondValue).ToString();this.fristValue = int.Parse(this.txtResult.Text.Trim();break;case OperateNo.Mod:if (0 != this.secondValue)this.txtResult.Text = (this.fristValue % this.secondValue).ToString();this.fristValue = int.Parse(this.txtResult.Text.Trim();break;default:break;运行后的效果如图所示:图5.185.3基于Visual C+2010开发windows phone 7 小游戏Game Studio游戏基础 这个游戏内置了多层关卡。每个关卡通过情节,游戏角色,环境等关联起来。这个简单的案例中,每个关卡可以看成一个独立的完整游戏。 一个关卡通常包含3个种状态: Loading 在此状态下,系统加载资源,设置和关卡相关的变量,计算游戏世界 (游戏世界是所有游戏过程发生的地方),并执行在游戏实际开始之前必须执行的任何其他任务。 Update 在此状态下,系统需要更新游戏世界状态。 通常,这意味着计算 (玩家(们)和敌人) 的新位置,更新血量、 弹药和其他状态,重新计算分数和其他游戏逻辑。 这种状态出现在整个游戏引擎处于活动状态的时间。 Draw 在此状态下,系统将绘制计算的输出的图形设备更新状态的更改。 这种状态出现在整个游戏引擎处于活动状态的时间。在XNA Framework中,后面两个状态,对于PC o或者Xbox 360的频率可以达到为每秒60次,而在对于Zune, Zune HD 或者Windows Phone 7可以多达30秒每次Windows Phone 7 XNA游戏开发实例整个步骤分五个部分,教大家完成一个有XNA编写的winphone手机游戏。1. XNA Game Studio 游戏基础2. XNA Framework 资源3. XNA Game Studio 游戏循环4. XNA Game Studio 游戏输入5. 游戏逻辑大家按照教程的五个部分完成就可以做出一个像下图展示的winphone游戏了。图5.19 异形游戏在winphone上运行的效果5.3.1 XNA Game Studio 游戏基础在这个环节,你将利用XNA Game Studio 创建自己的第一个Windows Phone游戏。这个游戏虽然很简单,但是我们会不断地添加新的功能来完善它。Note: 虽然我这里用的是Microsoft Visual Studio 2010 Express for Windows Phone,但是同样适用于安装了Windows Phone Developer Tools的Microsoft Visual Studio 2010。1. 打开Microsoft Visual Studio 2010 Express for Windows Phone,从Start | All Programs | Microsoft Visual Studio 2010 Express | Microsoft Visual Studio 2010 Express for Windows Phone.Visual Studio 2010: 开打Visual Studio 2010 从Start | All Programs | Microsoft Visual Studio 2010. 2. In the File menu, choose New Project. 在File菜单,选择New Project.在File菜单,点击new,然后选择Projecet3. 在New Project对话框,选择XNA Game Studio game在Windows Phone分类中,选择Windows Phone Game (4.0);然后设置name为AlienGame设置solution name 为 Begin。图5.20 在 Microsoft Visual Studio 2010 Express for Windows Phone中,创建一个新的Windows Phone 游戏应用程序项目4. 在资源解决方案管理器中, 查看由 Windows Phone应用程序模板生成的解决方案的结构。 任何 Visual Studio 解决方案都是是相关项目的一个容器; 在这种情况下,它包含一个名为 AlienGame 的 XNA Game Studio game for Windows Phone 项目和一个名为 AlienGameContent 的相关游戏资源项目。图5.21在解决方案资源管理器中展示AlienGame应用Note: 解决方案资源管理器允许您查看项,并执行一个解决方案或项目中的项管理任务。 显示解决方案资源管理器,按 CTRL + W、 或者在视图菜单中选择?Other Windows | Solution Explorer。 5. 生成的项目包括一个默认的游戏实现,这个实现包含基本XNA Game Studio 游戏循环。 它位于在 Game1.cs 文件中。6. 打开Game1.cs文件。我建议将其默认名称修改成为可以反映你想法的游戏名称。7. 在这里我们将游戏的主类(默认命名为Game1)重命名为AlienGame。将其重命名,右键单击类名称,选择Refactor | Rename.图5.22重命名主游戏类8. 在重命名对话框中,在New name 字段中输入AlienGame ,然后点击确定。图5.23 给主游戏类命名9. 检查由Visual Studio提供的更改建议,并点击Apply。图5.24对主游戏类实施变更10. 我们将文件名进行修改来匹配新的类名。在解决方案资源管理器中右键点击Game1.cs并选择Rename。给这个类一个新名字AlienGame.cs。图5.25 将主游戏类文件重命名11. GameThumbnail.png 包含应用程序在手机设备快速启动屏幕上显示的图标。你可以在解决方案资源管理器中双击他,就是利用你的机器中的图片修改软件来修改这个图片,如绘图板。Note: 在Visual Studio 2010中,在解决方案资源管理器中双击这个icon文件,会打开Visual Studio中内置的面片修改器 XNA Game Studio game 开发的 Windows Phone 应用程序通常利用由基础平台或其他库提供的服务。若要使用此功能,应用程序需要引用相应的程序集,实现这些服务。12. 要显示由项目引用的程序集,展开在解决方案资源管理器中的References 节点,并检查列表。我们会发现他包含XNA Framework 程序集和?Windows Phone platform的特殊程序集。 图5.26项目引用的程序集目前,该应用程序没有更多的内容,但它已准备好做第一次测试运行。 在这一步,我们准备调试程序,并将该应用程序将其部署到 Windows Phone Emulator,然后执行它,来了解一个典型的开发周期。13. 在Debug 菜单,选择Windows | Output 来打开Output 窗口。14. 在Debug 菜单中选择Build Solution或者按下SHIFT + F6组合,在解决方案中编译项目。Visual Studio 2010:选择Build 菜单中的Build Solution 或者按下CTRL + SHIFT + B 在解决方案中编译项目。 15. 观察Output窗口并查看调试过程中产生的追踪消息,包含一条追踪的结果信息。图5.27在Visual Studio中调试应用程序您应该不会在现阶段观察任何错误,但如果项目包含编译错误这些将在输出窗口中显示。 若要对付这些类型的错误您可以利用错误列表窗口。 此窗口显示错误、 警告,并可以进行排序的列表中的编译器产生的消息和筛选器基于错误的严重性。 此外,您可以双击自动打开有关源代码文件并定位到错误的来源列表中的项。16. 要打开Error List窗口,在view菜单中,点击Other Windows并选择Error List。Visual Studio 2010:打开Error List窗口,在view菜单中选择Error List。 图5.28 Error List窗口显示错误在调试过程中17. 确认部署目标为Windows Phone Emulator。做法为,找到工具栏上Start Debugging按钮旁的Select Device,确认Windows Phone 7 Emulator选项在Select Device下拉菜单中处于选中的状态。图5.29 选择目标设备来部署应用Note: 当你通过Visual Studio部署你的应用时,你可以选择部署在真机或者仿真程序 18. 按 f5 键在Windows Phone Emulator中启动该应用程序。请注意,一个设备仿真程序窗口将出现,而且出现一个短暂的停顿,这时Visual Studio在设置仿真环境和部署图像。一旦准备好仿真程序显示开始页,此后不久您的应用程序将显示在仿真器窗口中。应用程序将显示一个简单的蓝色屏幕,没有任何其他所示。 对于一个早期阶段中的应用程序,这是正常现象。图5.30 在Windows Phone Emulator上运行应用在您创建的用户界面和程序的应用程序逻辑之前,没有什么可以在应用上做的。19. 请按下SHIFT + F5或者和点击工具栏上Stop按钮,来切断调试并且结束调试会话。这个时候要不关闭仿真程序窗口。图5.31 结束调试会话Note: 在启动调试会话时,它将要用一段来时间设置仿真环境和启动应用程序。 为了简化您的调试体验,避免关闭仿真程序。 这样一旦运行仿真程序,只需要很少的时间停止当前会话, 编辑源代码,然后构建和部署新的图片,为您的应用程序启动新的调试会话。5.3.2 XNA Framework游戏资源这个环节我们将利用XNA将提供的大量的声音、图片和声音各种资源管理起来,使游戏开发过程更加容易。 在此任务中,您将添加这些资源到游戏中。 同时还提供了大量的代码文件,以处理在游戏中的菜单和屏幕变化的复杂性。 您需要将游戏中添加这些文件。 您现在正在构建这个游戏。 这个游戏将呈现一些图形。 在此任务中,您将添加一些资源,应用程序和一些现有的游戏逻辑(ScreenManager)。Note: 所有游戏资源请在下载压缩包的assets目录下找:SourceAssetsCode 所有C#文件SourceAssetsMedia 所有的字体、图片和声音1. 关闭项目,打开资源管理器,指向项目的地址,把下载包里的 SourceAssetsMediaImagesIcons文件夹下的两个文件复制到AlienGame项目中,覆盖原文件。Game.icoGameThumbnail.png2. 重新打开 Visual Studio 2010 ,并打开 AlienGame 项目。大多数游戏使用的艺术表现模式为模型、 网格、 子画面、 纹理、 影响、 地形、 动画等等形式。 这种艺术资产可以在许多不同的方式创建和存储在许多不同的文件格式里。 他们在游戏开发过程中经常更改。 内容管道被设计来帮助您轻松地和自动在游戏中管理这些艺术资产。 美工可以生成一个汽车的模型,并导入到XNA Game Studio游戏项目中。而开发人员可以直接用过这个汽车模型的名字通过ContentManager.Load调用。这个简单的流程让设计人员聚焦在创建资源,而开发人员聚焦在使用他们,大家再也不用担心之间的关联和转化。 XNA内容管道是很容易集成到XNA Game Studio项目中。 您只需将资源添加到您的项目和当您编译数据导入并转换中使用内容的导入程序的 XNB (XNA二进制文件)。 为适当的平台生成此 XNB 文件。 内容导入程序是作为程序集实现的。 除了由XNA Game Studio提供的标准,你还可以使用自定义和第三方开发的一些标准的内容导入程序包括以下文件类型(部分列表):Autodesk FBX format (.fbx)DirectX Effect file format (.fx)Font description specified in a .spritefont fileTexture file. The following types are supported: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, and .tgaGame audio specified in the Microsoft Cross-Platform Audio Creation Tool (XACT) format (.xap)3. 这里为大家准备了一些多媒体文件,包括字体,声音和图像。我们将下列资源添加到AlienGameContent项目中:所有的字体在SourceAssetsMediaFonts 文件夹中所有的图片在 SourceAssetsMediaImagesContent 文件夹中所有的音效在 SourceAssetsMediaSounds 文件夹中4. 添加现有项目,右键点击AlienGameContent 工程名,并选择 Add | Existing Items:图5.32 向工程中添加现有项目5. 定位到文件位置,然后选择文件。 在某些情况下,您可能会看不到的所有文件。 在这种情况下需要更改文件选择对话框中的筛选器,以显示在目录中的所有文件:图5.33 更改文件类型筛选器,以显示该文件夹中的所有文件6所产生的 AlienGameContent 项目应如下所示:图5.34添加了内容以后的项目结构7. 添加一个新的项目文件夹 右键点击AlienGame,选择Add | New Folder。图5.35 添加新项目文件夹8. 将文件夹命名成ScreenManager。这个文件夹将被用来存放提供的源文件。这些文件用以帮助管理创建游戏屏幕、 菜单,和它们之间的更改的复杂内容。Note: 这段代码实现创建XNA Game Studio菜单和屏幕的标准方法。 9. 打开SourceAssetsCodeScreenManager文件夹,添加所有现有Screen Manager文件。 10. 将SourceAssetsCode文件夹中ParticleSystem.cs添加到AlienGame根目录。 11. 最终AlienGame 项目结构如下图5.36 最终AlienGame 项目结构12. 添加一个新类到AlienGame项目,命名为BackgroundScreen:图5.37给项目中添加一个新类13. 打开新的类,并添加以下使用申明:(代码段 XNA游戏 BackgroundScreen使用申明)using AlienGameSample;using Microsoft.Xna.Framework.Graphics;using Microsoft.Xna.Framework;14. 从GameScreen 类中派生的新类,(GameScreen 类添加到 ScreenManager 文件夹中):class BackgroundScreen : GameScreen15. 添加下面的类变量,以后用于加载资源:(代码段 XNA游戏 BackgroundScreen 屏幕背景类变量)Texture2D title;Texture2D background;16. 定义类的构造函数,如下所示:(代码段 XNA游戏 BackgroundScreen构造函数)public BackgroundScreen()TransitionOnTime = TimeSpan.FromSeconds(0.0);TransitionOffTime = TimeSpan.FromSeconds(0.5);17. GameScreen 类定义了一些核心的游戏功能,根据之前所描述的: LoadContent,更新,及绘图。 重写了基类 LoadContent 功能(代码段 XNA游戏 Background Screen LoadContent 方法) public override void LoadContent()title = ScreenManager.Game.Content.Load(title);background = ScreenManager.Game.Content.Load(background);此代码段从游戏资源中通过名称来加载内容。 18. 创建一个LoadingScreen类,这个类,在游戏资源加载的时候,将屏幕展示出来。Note: 创建一个新类,在在解决方案资源管理器中,右键单击 AlienGame 项目,然后选择Add | Class。 19. 添加以下使用申明(using statements)到 LoadingScreen 类:(代码段 XNA游戏开发 LoadingScreen 使用申明)using AlienGameSample;using System.Threading;using Microsoft.Xna.Framework;20. 从 GameScreen 基类 (像你之前类所做的),派生一个新类,并添加构造函数,如下所示:(代码段 XNA游戏开发Loading Screen构造函数) class LoadingScreen : GameScreenpublic LoadingScreen()TransitionOnTime = TimeSpan.FromSeconds(0.0); TransitionOffTime = TimeSpan.FromSeconds(0.0); 21. 添加一个类变量来保存将用来加载该组件的线程:(代码段 XNA游戏开发装屏幕类变量)private Thread backgroundThread; 22. 创建一个方法去加载这些内容。这个方法是xna标准加载过程的一部分。(代码段 XNA游戏开发 Loading Screen BackgroundLoadContent 方法)void BackgroundLoadContent()ScreenManager.Game.Content.Load(alien_hit);ScreenManager.Game.Content.Load(alien1);ScreenManager.Game.Content.Load(background);ScreenManager.Game.Content.Load(badguy_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国低噪音风机行业市场发展现状及投资前景预测报告
- 2026年行业分析中国照明行业市场发展战略分析及投资策略咨询报告
- 蔬菜大棚可行性研究报告
- 2026年塔吊考试模拟试卷(含答案)
- 2026年浙江省安全员B证考试模拟题及答案详解
- 2026年护资招聘考试模拟题及答案详解
- 2026年气割焊接模拟试卷(含答案)
- 2026年sqe考试模拟试卷(含答案)
- 2026年国学经典选读无纸化考试(作业练习1)模拟题及答案详解
- 纤维增强复合材料(BFRP)行业市场运行格局及发展前景研判报告
- 九年级水的化学组成微课省公开课获奖课件说课比赛一等奖课件
- 外聘法律顾问报名表(律师事务所)
- 华东师大版八年级体育与健康全册教案
- (正式版)JBT 14762-2024 电动摩托车和电动轻便摩托车用阀控式铅酸蓄电池
- 《社区康复》课件-第一章 总论
- 美发与形象设计-高级美发全套教学课件
- 制浆造纸设备安装现场管理
- 22S803 圆形钢筋混凝土蓄水池
- GB/T 16984-2023大麻原麻
- 高中物理 人教版 选修一《动量守恒定律》第五课时《弹性碰撞与非弹性碰撞》 课件
- 农学植物保护学通论
评论
0/150
提交评论