- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
带宽和cpu性能,平衡的艺术
带宽和cpu性能,平衡的艺术
游戏开发中如何减小带宽和降低cpu消耗
1. 减少带宽
① 减少素材文件尺寸;
② 素材加载排队;
③ 程序模块化;
④ 部分游戏数据静态化。
2. 降低CPU消耗
① 优化代码;
② 矢量图转化为位图;
③ 降低帧频。
1.1 减少素材文件尺寸
1. 去掉配置文件的多余字符和注释;
2. 压缩图片;
3. 使用矢量图。
1.2 素材加载排队
前提:同时很多素材是一样的
游戏场景中有很多元素,很多元素都是一样的。例如一
块土地上种有8棵芝麻,当你进入游戏的时候,场景会
同时向服务器发出加载8棵芝麻素材的请求,也就意味
着同一个素材会被加载8次。如果让其中一颗芝麻首先
去服务器加载,加载完成后通知其他7棵芝麻,这样7
棵芝麻加载的时候可以从浏览器缓存里面取到。
素材排队程序设计
1. 3程序模块化
预先分好模块,不同部
分编译为不同的swf,
这样不至于每次更新都
需要下载整个程序;
1. 3程序模块化
程序皮肤,国际化文字拆分为不同的swf ;
灵活运用运行时共享库;
Flex同时采用框架运行时共享库。
1.4 部分游戏数据静态化
原理:很少变化的数据可以静态化。
例如游戏中的商店数据基本上是不变的,没必要
每次进入游戏都去调用后台获取商店数据,可以
把商店数据在后台生成一个静态文件,这样前端
请求这个静态文件即可。如果商店数据没有变
化,则以后可以在浏览器缓存里面取到。
2.1 优化代码
找到出问题的代码,优化它。
2.2 矢量图转化为位图
1. 静态矢量图转化为位图;
2. 动画矢量图转化为位图。
2.2.1静态矢量图优化
如果矢量图没有动画,也不会对他进行频繁的变换(放大,缩
小,旋转),则可以使用:
cacheAsBitmap = true;
所有DisplayObject及其子类
(Sprite,MovieCLip,mx.core.UIComponent等)都有这个属性。
2.2.2 动画矢量图优化
很可惜cacheAsBitmap = true 对矢量动画不起作用。
矢量图需要cpu运算来绘制,但是位图的渲染就要简单
的多,基本不消耗cpu,所以可以将矢量动画转化为位
图。
该技术对于静态矢量图也适用。
矢量图转化为位图原理
为了简单起见,以一张只
有一帧的矢量图作为例子
来说明。
首先,载入矢量图,载入
成功后获取该矢量图的图
像数据(BitmapData),然
后基于这个数据来渲染图
形。
代码示例
private var bitmap:Bitmap;
private var loader:Loader;
private function onFileLoadComplete(e:Event):void
{
var loaderInfo:LoaderInfo = e.target as LoaderInfo
var content:MovieClip = MovieClip(loader.content);
imageWidth = loaderInfo.width;
imageHeight = loaderInfo.height;
var bd:BitmapData = new BitmapData(imageWidth,
imageHeight, true,
0;
文档评论(0)