裴小星的博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年1月20日

摘要: Learning XNA 4.0 中文版全书下载 PDF下载: http://115.com/file/c4h8k3mu 源代码下载: http://115.com/file/a9gwcrj4 彩色图片下载: http://115.com/file/bl79mdqq 我的博客: 博客园: http://www.cnblogs.com/peixiaoxing 主要发布游戏开发方面的文章。 CSDN: http://blog.csdn.net/xxing22657 主要发布.NET平台相关文章。 javaeye: http://xxing22657-yahoo-com-cn.javaeye.com/ 主要发布Java等其他语言的相关文章。 还是那句话: 欢迎有兴趣的朋友共同探讨交流。 同时欢迎有出版合作意向的出版社洽谈出版事宜。 阅读全文
posted @ 2011-01-20 20:00 裴小星 阅读(3050) 评论(13) 推荐(7) 编辑

2011年1月15日

摘要: 第6章 声音和音效   对于XNA Framework 4.0,有好几种方法来实现声音效果。在之前的XNA版本中,开发者使用一个名为“跨平台音效制作工具 ”(XACT)的专用声音工具。使用XACT,开发者可以汇集声音文件来被内容管道处理并且使用XNA Framework的音频API来实现声音效果。在XNA 3.0中,XNA小组添加了一组独立的API来进行Microsoft Zune的开发。在XNA 4.0中,这两种方法仍然可以使用。XACT更健壮和强大,但它只能用于使用了“HiDef”设置的游戏,而简化的声音API来两种设置中都可以使用。在这一章里,我会向您展示如何用两种方法实现声音效果。 阅读全文
posted @ 2011-01-15 21:58 裴小星 阅读(1053) 评论(1) 推荐(1) 编辑

摘要: 第5章 应用面向对象设计   恭喜!在上一章的末尾您已经初步建立了一个基本的游戏。不过,虽然到目前为止我们编码的方式用作教学演示不错,但从设计的角度来说却是非常低效的。一个好的设计总是能够提升开发效率的。   您可能注意到要添加一个新的精灵到项目中是件多么棘手的事情。特别是当您需要添加一个动画对象,移动并使用碰撞检测时,有许多变量和代码需要复制粘贴,结果您的代码很快开始变得一团糟。如果您继续这样走下去,事情很快会失控。因此,让我们花几分钟的时间在游戏中应用一些好的面向对象设计——这会使您将来的路好走得多。 阅读全文
posted @ 2011-01-15 19:51 裴小星 阅读(880) 评论(0) 推荐(1) 编辑

摘要: 第4章 用户输入和碰撞检测   虽然看到一组由您亲自实现的漂亮的旋转圆环是很酷的事情,但在完全掌握XNA之前您依然有很长的一段路要走。尽管动画看起来很漂亮,但是它没有干任何事情,并且它并不受您的控制。一个和玩家没有交互的游戏有什么乐趣可言呢?在这一章里,我们会研究用户输入和碰撞检测来使您的游戏除了看起来很漂亮外再干点有意义的事情。   这一章将会用到第3章末尾编写的代码(三环动画),本请打开项目并根据本章的说明进行改写。 阅读全文
posted @ 2011-01-15 17:12 裴小星 阅读(1571) 评论(1) 推荐(0) 编辑

2011年1月14日

摘要: 问答与练习参考答案 第1章:XNA 4.0有哪些新特性? 问答答案   1. 在XNA 4.0中对XNA文件夹结构进行了什么重大改变?   解决方案中的Content节点,之前是您的游戏项目的子文件夹,而现在它在解决方案中拥有自己的项目。它使您可以轻松的通过多平台项目共享内容。   2. XNA 4.0支持什么游戏平台?   XNA 4.0支持在Windows、Xbox 360与Windows Phone 7系列上的开发。   3. XNA 4.0中Reach和HiDef标准有什么不同?   HiDef是设计用于高功率的一线硬件的,而Reach是设计用来支持更广阔范围的硬件设备。Reach标准提供一个有限的图形特征集合并且它是HiDef的子集。 阅读全文
posted @ 2011-01-14 23:06 裴小星 阅读(847) 评论(0) 推荐(0) 编辑

摘要: 调整帧率   尽管三环动画看起来相当不错,但可能有时您会觉得动画的速度太快或者太慢而想要去改变它。   前面我提到过帧率的概念,这里还是简单地提示一下:帧率表示一秒钟游戏重绘整个场景的次数。在XNA中,PC和Xbox 360游戏的默认帧率为60fps,而在Windows Phone 7游戏的默认帧率为30fps。除非您在一台非常慢的机器上运行这个程序,否则您很有可能看到动画以60fps绘制。 阅读全文
posted @ 2011-01-14 21:58 裴小星 阅读(988) 评论(0) 推荐(1) 编辑

摘要: 层深度   您可能注意到第二个XNA LOGO覆盖在原来的LOGO之上。默认情况下,XNA会在之前绘制的图像上面绘制新的图像,但是您可以改变图像在屏幕上的层叠次序。图像层叠的次序和图像Z次序有关,或者说层深度。   虽然您现在可能并不在意哪个XNA LOGO在上面,但有时您需要某些图像总是在其它图像的上面。举个例子,在大多数游戏中,您希望角色在所有的背景图像之上移动。有一种方法是确保您想要放在顶层的图像总是最后绘制。这个方法可行,但是随着游戏中图片的增多,组织Draw调用以达到您想要的结果将会是件非常痛苦的事情。   谢天谢地,XNA可以让您为每个图像指定一个层深度,使图像总是能有正确的Z次序。要修改层深度,您需要将两个SpriteBatch.Draw都换成之前例子中的重载版本。请将您的第一个Draw调用改成下面这样: 阅读全文
posted @ 2011-01-14 20:51 裴小星 阅读(1168) 评论(0) 推荐(1) 编辑

2011年1月13日

摘要: 透明度及其它选项   当往屏幕上绘制多个精灵的时候,您可以(而且也应该,出于速度的考虑)在SpriteBatch.Begin和SpriteBatch.End之间绘制尽可能多的精灵。实际上您应该做的是在游戏中用一个SpriteBatch对象然后在Begin和End之间绘制所有的2D图像。   就像您在图3-4中看到的那样,我们使用的XNA LOGO有很难看的白色背景,如果它变为透明的话或许看起来要好很多。 阅读全文
posted @ 2011-01-13 23:07 裴小星 阅读(1129) 评论(0) 推荐(0) 编辑

摘要: 在项目中增加一个精灵   好了,我就不多说了,这一次我是认真的。让我们开始。您的项目到目前为止是令人乏味的。现在,让我们绘制一副图像到您游戏的屏幕上。   XNA中所有的图形、声音、特效和其它东西都要通过一个称为内容管道的东西加载。本质上内容管道将诸如.jpg文件、.bmp文件、.png文件和其它格式的文件在编译过程中转换成一种XNA很容易使用的内部格式。对于其它类型的资源也是如此,比如声音文件、3D模型和字体等等,后面的章节将会深入地探讨。XNA框架很大的一点好处就是不同文件类型对于XNA都是透明的。如果您在游戏中添加了一个图像文件,内容管道在编译过程中能够识别它,您不需要为图像格式而担心。(稍后的章节会更深入讨论到内容管道。) 阅读全文
posted @ 2011-01-13 20:29 裴小星 阅读(1111) 评论(0) 推荐(0) 编辑

2011年1月12日

摘要: 游戏开发与轮询   另一个游戏开发和典型应用程序开发之间的关键差异是轮询和事件注册的概念。许多非游戏的应用程序都采用用户事件驱动的方式来处理逻辑。举个例子,如果您要为某些系统写一个窗体组件命名模块,您可能会创建一个窗口然后要求用户输入想要的名字,窗口有一个确定按钮和一个取消按钮。不管这个程序用哪种编程语言写成,直到用户点击确定按钮或取消按钮之前都不会做任何事。当用户点击其中一个按钮时,系统将产生一个程序能够捕获的事件。换句话说,应用程序只有在用户给它发送一个某个按钮被按下的事件标识后,才会被唤醒并做一些处理。   相比之下,游戏程序由事件轮询(polling for events)驱动,而不是等待并监听是否有事件被激发。相反,游戏程序会主动询问系统鼠标是否被移动,同时程序会一直运行,不管有没有用户输入。 阅读全文
posted @ 2011-01-12 23:57 裴小星 阅读(1160) 评论(0) 推荐(0) 编辑