设为首页 收藏本站
查看: 820|回复: 0

Windows Phone 7范例游戏Platformer实战3——游戏资源和内容管道

[复制链接]

尚未签到

发表于 2015-5-10 10:27:34 | 显示全部楼层 |阅读模式
  我们知道,游戏不单只是代码,还存在许多其它的资源,比如说游戏图片、地图文件、视频和音频文件等。Platformer也不例外,XNA项目的所有的图片、地图场景文件、音频文件、字体等都被归为游戏的Assets,也就是游戏的资源。
  
  通常说来,我们建立一个XNA的游戏项目时,VS2010都会内置一个称为内容管道(Content Pipeline)的东西。我们在Platformer项目中可以看到所有的游戏资源都在一个名为Content的内容管道项目中。该内容文件将游戏的背景图片、字体、关卡编辑文件、英雄和僵尸怪的精灵文件、所用的音频都囊括在内。如下图示所示
  
DSC0000.jpg
  
  现在点击Platformer项目中的layer0_2背景图片,在Visual Studio 2010的属性窗口我们可以看到内容导入器(Content Importer)和内容处理器(Conten Processor)都被设置为Texture - XNA Framework,这意味着内容导入器将会把图片准备被内容管线作为纹理对象来使用。
  
DSC0001.jpg
  
  将Build Action设置为Compile(编译)后,内容处理器会在编译时将转换好的纹理文件放到一个后缀为.xnb的二进制文件中,内容管理器可以直接访问.xnb文件并获取到纹理对象。(在计算机图形学中纹理指应用到3D物体表面的2D图像,在XNA的3D部分我们可以学到纹理的具体概念。不过现在我们这里姑且把纹理当做是2D图片的另外一种实现吧)。
  
  将资源文件转化为.xnb有一个好处,就是用户或者其它开发人员无法直接获取你的游戏资源文件,目前还没听说那个反编译工具可以从.xnb文件直接提取资源。
  
  内容导入器/内容处理器值除了纹理外,还可以包括视频、音频、字体、3D模型等,如下图所示。
  
DSC0002.jpg
  
  Platformer游戏场景是由多个关卡组成的,在关卡生成时会向一些txt文本文件加载信息,这些文本文件使用不同的字符来代表不同的信息,包含了关卡的入口和出口位置、僵尸怪的起始位置、宝石和瓷快的位置等。关卡在绘制时会自动将这些字符转换为对应的图片。

  
DSC0003.jpg     DSC0004.jpg
  图1   游戏场景呈现                                                    图2    关卡地图文本
  
  图1和图2是相应的文本文件和实际场景的对照图,对比可以看出字符‘1’代表英雄起始位置,#代表踏脚石,‘X’代表出口,‘.’表示空白,‘G’则是宝石了。
  
  Platformer存在三种不同的瓷片,用于实现场景中的踏脚石和区域格挡。
  
  
瓷片名称
属性
Impassable
英雄和僵尸怪无论从何方向都无法穿过的瓷片,就是我们通常说的碰到南墙要回头的那种。
Passable
英雄和僵尸怪可以自由穿过的瓷片,该瓷片主要是起到装饰的作用,主要用来放置丛林叶子、岩石和其它风景元素。
Platform
这就是所谓的踏脚石了,英雄和僵尸怪可以在这种瓷片上站立,而不至于掉到游戏场景的最下面。

程序可以根据英雄或者僵尸怪的边界矩形和踏脚石最上方的坐标进行冲突检测。如果冲突发生,那么英雄或者僵尸怪的Y方向的速度将强制设置为0,这在英雄落下到踏脚石时发生。

如果英雄和僵尸怪站立或者跌落在一个可以自由穿过的瓷片上,任何冲突检测都不会发生。英雄或僵尸怪将一直下落,直到跌落到一个踏脚石或者游戏场景的最底端为止。

  
  除了这些瓷片外,还有一些在场景中具备重要意义的对象。
  
  
名称
属性
Level Start
英雄出现在关卡的入口位置,面朝右端。
Gem
需要收集的宝石,英雄必须在时间耗尽和到达出口之前,收集完所有的宝石才能通过关卡。
Level Exit
英雄必须到在时间耗尽前到达这个位置才能通关,未能到达这个位置或者未收集全部的宝石的话,那么当前关卡会重新开始。

  
  英雄特性
  在游戏中,英雄可以跳跃和跑动,英雄在跳跃过程中会受到仿真的重力影响,这样才不会在跳跃的时候不会无休止地处于上升的过程。此外,英雄在跑动状态下突然停止时,存在一个逐渐减速的过程,这样也较符合我们真实场景中的实现。此外英雄还存在死亡、等待、庆祝三种状态。下面是英雄的部分精灵图片展现:
DSC0005.jpg
DSC0006.jpg
  
  僵尸怪
  僵尸怪被设定在一个平台上来回跑动,当到达平台的边缘时,它会立马调转方向而不至于掉落平台。Platforme游戏初始设定英雄无法杀死僵尸怪,而且一旦和僵尸怪接触,英雄会立即死亡导致闯关失败。
  
DSC0007.jpg
  
  
  好了,上面就是所有游戏需要的资源了,大家可以新建一个XNA项目分别导入Platformer的资源文件,当然你也可以直接下载Platformer项目直接查看。但是轩辕建议你还是从头练习一遍,毕竟动手获得的体会和看文章和代码是完全不同的。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65422-1-1.html 上篇帖子: 官方Windows 7 RC Build 7100官方下载,序列号申请,汉化 下篇帖子: Windows Phone 7 不温不火学习之《程序性能分析器》
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表