Cocos2dx技术点总结

更新时间:2023-06-17 12:06:35 阅读: 评论:0

兄弟们,手写自己思考的,那些地方不明白欢迎交流,不对的地方也请和我沟通,拜托。
孟宝亮  2014.10.22
第一章 Cocos内存优化
Cocos2dx内存优化分为  纹理优化  渲染优化  纹理格式优化  纹理尺寸限制 内存优化
纹理的优化主要是是对纹理深度进行优化。我们的程序中可以修改默认的纹理深度,默认纹理深度是RGBA8888  每一个颜色通道会占用8个位,一个像素那么就会占用4个字节。因此一张图片的所占内存的大小就是图片的宽*高*像素大小。纹理深度可分为几种:
RGBA8888  占用4个字节
RGBA4444  占用2个字节
RGB5A1 占用2个字节
RGB565
RGB888
然后是对渲染的优化,比如我们要渲染两个纹理,纹理1和纹理2,那么在渲染的时候需要切换纹理,如果渲染纹理1 纹理2 ,那么我们需要切换2次纹理,有什么方法可以切换一次就可以渲染呢?那就是使用CCSpritBatchNode , 具体思路是什么样的呢?我们把纹理1和纹理2合并到一张图上,这样我们渲染的时候始终都是一张纹理,就减少了多个纹理直接切换的操作。
纹理格式的优化。我们常说游戏中使用pvr格式的纹理会增加加载速度,并且占用更小的内存。但是这种方案是针对于IOS设备的,安卓设备无效的。这是因为IOS对pvr格式的纹理可以进行硬件加速,而安卓设备还是软件加速。
内存的优化,主要就是内存池的解决方案了。如果我们的游戏在运行的时候频繁的创建 销毁对象,一来这样的操作过多必然降低效率,二来也会在内存中产生很多的碎片。最好的方式就是游戏在启动的时候,分配一块内存区域,来保存我们需要的游戏数据。一个例子就是比如酷跑中的金币,很多金币,你需要每次都创建,然后销毁吗?答案是否定的。我们可以创建一个池,提前创建好比如100个金币,当金币超出屏幕的时候,我们不销毁,
小黑历险记需要的时候从池中拿出来初始化。这样是不是避免了重复的创建和销毁的操作呢?
青年力量第二章 带春字的古诗数据的存储处理
数据的存储在操作中是非常多的了,主要也经常使用的两种数据格式xml和json。一般来讲在本地存储一些数据的时候,比如说存储下游戏的版本号,或者一些其他的游戏数据,角色的等级,金钱,攻击力,防御力等等数据 ,那么我们可以使用xml格式存储。对xml文件的操作有很多方案 libxml2 tinyxml2 还有cocos的CCSAXParr 都可以用来解析。如果需要XML中的中文,那么请使用ICONV库。
1月13日>电脑屏保怎么设置那么在网络数据传输的过程中,XML格式就有点大了,相比json就是重量级的了,所以我们需要使用更轻量级的格式json。Json的好处我就不说了,解析json的库也很多,比如Libjson rapidjson jsonCpp等等。
李忠臣
这两种的格式的创建和解析在开发中非常常用,建议必须掌握一种的处理方式。
第三章 加密技术
为什么需要加密呢?我们辛辛苦苦开发的游戏资源,比如地图,我们的任务骨骼动画,其他的一些资源文件,你想随意被人拔走去山寨吗?当然不想了,那么这个就需要加密。我们一些本地数据,比如我们的本地的xml中存储了我们游戏的一些数据,比如角色攻击力,防御力等,如果不加密,那么就非常轻易的被人修改数据,成为无敌玩家了。还有就是网络传输过程中数据的传输,那么如果被人截取到了我们发送到服务器端的数据包的话,并且被人修改了数据,我们服务器就保存了用户的不正确的数据,所以网络数据的传输也需要加密。
那么常用的加密技术有哪些呢?MD5 BASE64 SHA1 这三种加密技术。其中MD5和SHA1是不可逆的,所以只能加密不能解密,那么有啥用呢?比如我们的游戏密码的验证,用户注册之后我们可以对用户的密码进行加密,存储到我们服务器端的数据库中,当下次用户登录游戏的时候输入了密码,那么我们把用户的密码加密之后和服务器端的密码进行对比,就可以判断用户是否有效。对应的是BASE64是可逆的,可以对字符串加密之后,并可以解密。
今年过年是几月几号
第四章 图片微信头像网络
我们的网络游戏要经常和服务器交互,比如从服务器端下载游戏资源,传输游戏数据到服务器端。那么和网络交互的方式主要有两种 一种是基于HTTP的网络连接,一种是基于SOCKET的网络连接。 具体来说我们如果要实现从服务器下载游戏资源,应该怎么做呢?可以使用CURL库来实现,用CURL库的话,我们下载完游戏资源,还需要我们去解压覆盖等操作,麻烦一些。基于HTTP的我们也可以使用CCHTTP。COCOS也提供一个类ASSETSMANAGER,这个就是专门用来进行游戏资源更新操作的。当然,用于网络就免不了多线程操作,因为我们可不想在加载资源或者其他和网络操作的时候让我们的游戏阻塞在那里,COCOS的多线程操作和我们学的LINUX C的多线程操作一样。可以直接来使用。
第五章 游戏适配
游戏提供了几种屏幕适配的操作。我们的游戏有时候需要针对不同的设备,比如手机设备 平板电脑 ,苹果还好,尺寸都固定,那么N多种的安卓设备怎么适配呢?可以用引擎提供的几种适配方案。我们在适配的时候,可以判断屏幕尺寸和我们的分辨率的大小,如果屏幕尺寸大于我们的分辨率了,那么我们可以把游戏的资源目录切换到我们的高清目录下。让我们的游戏读取的资源文件都是高清图片。
游戏中我们SETPOSTION的时候,不要使用绝对坐标了,尽量使用相对坐标,相对于屏幕可视部分的左下角 左边 左上角 中间点 中间上  中间下  右下角  右边 右上角 ,这9个点的相对坐标。

本文发布于:2023-06-17 12:06:35,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/975391.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:游戏   纹理   数据   时候   资源   需要
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图