- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
到本系列文章的前四篇为止,我们已经完成了一个简单的游戏,Ray Wenderlic的那篇文章也翻译完了。但实际上工作还没有结束。游戏开发者应该没人愿意像前文那样,把图片和音乐资源存储在公开的文件目录下,被人拷走就能轻易被山寨了。所以这篇里我们先来讲下怎么对资源进行打包,最后和程序混在一起,编译成一个二进制文件发布。这个资源打包工作是uPhone机制提供的。
?
一、图片和音乐资源打包
?
??? 前面的Cocos2dSimpleGame中,如上图,我们一共使用了5张图片资源:
?
图片名称
图片用途
CloseNormal.png
关闭按钮的正常状态图片
CloseSelected.png
关闭按钮被点击时的图片
Player.png
带头大哥
Projectile.png
带头大哥的暗器
Target.png
不知死活的小喽啰
?
???? 下面,我们使用Uphone开发平台自带的资源编辑器TOPS Builder将资源进行打包。步骤如下:
1. 使用 TOPS Builder 打开游戏的资源工程:
???? 双击 D:\Work7\cocos2d\Cocos2dSimpleGame\Res\Cocos2dSimpleGame_Res.TRG 文件,这就打开了游戏的资源工程,运行的界面如下图:
?
2. 将需要使用的图片和音乐添加到资源编辑器中
?? ?在资源编辑器中添加图片的示意图如下:
?
?
首先,单击图中 1 所示的Bitmaps标签,进入图片资源编辑分页;
然后,右击图中 2 所示的空白区域,弹出如图中 3 所示的菜单,选择“添加图片”,即可选择图片加到资源比编辑器中。
添加成功后,图中 2 所示的空白区域会把已添加的图片名字列出。
使用同样的方法添加音乐资源(mp3,wav等),但注意第一步选资源类型时,应点到Raw data标签内
?
3. 对添加的资源进行编译
?? ?在资源编辑器中,点击界面左上角的闪电符号按钮,对资源进行编译。
注意:在进行编译之前,需要讲使用的图片、音月资源文件添加到代码的Visual Studio工程中,添加后Visual Studio工程的文件视图如下:
????
注意:此编译过程是将图片文件的数据以 Uphone 内部的结构形式保存到 .h 文件中,并为每个图片资源分配一个资源 ID,在应用中通过该 ID 使用该图片资源。编译后,你可以看到这个巨大的.h文件D:\Work7\cocos2d\Cocos2dSimpleGame\Res\cocos2dsimplegame_res_def.h 。
?
?? ?通过上面的几个简单步骤,我们就完成了资源打包。这样我们的游戏在编译完成后,资源和代码就在同一个二进制包里了
?
二、在cocos2d游戏中使用打包的资源
?
?? ?资源打包的工作完成了。接下来我们就可以在cocos2d游戏中使用这些资源了。使用前,我们先了解一下普通的Uphone应用是如何使用打包资源的
?
1. 普通Uphone应用使用打包资源的方法
?? ? 在Uphone SDK中,有一个TResource类,这个类提供了静态接口函数用于获取当前上下文的bitmap和rawdata资源数据,接口及注释是这样的:
/**@brief??获取当前上下文资源里的图片类实例。此函数返回的TBitmap实例,无须释放。@param?nResId?资源ID。@return?TBitmap指针。*/static?const?TBitmap?*?LoadConstBitmap(Int32?nResId);/**@brief??获取当前上下文资源里的原始数据。此函数直接返回资源中的原始数据的地址(即原始数据内容不可更改)。@param?nResId?资源ID。@param?puLength?原始数据长度。@return?原始数据指针。*/static?const?void?*?LoadConstRawData(Int32?nResId,?UInt32?*?puLength?=?NULL);
?
?
所以,在Uphone应用中只要使用如下代码就可以加载图片资源了:
const?TBitmap*?pBmp?=?TResource::LoadConstBitmap(COCOS2_ID_BITMAP_CloseNormal);
?
?
2. ?cocos2d-x游戏中使用打包资源的方法
?? ?上面的资源调用方法对cocos2d-x开发者来说功能不够强、不够跨平台,也不能很好地解决不同分辨率匹配不同资源的问题。同时,用资源ID调用的方法比较类似于windows mobile,而对于习惯了cocos2d-iphone的开发者来说,文件名会更符合一些。所以我
文档评论(0)