本节课是对上一讲的升华,更进一步的对sprite的创建进行优化。
优化性能
左下角显示fps的意思是:第一行代表渲染多少次(感觉是调用了多少次draw),次数越少越好,第二行代表每渲染一次花费的时间,时间越少越好,第三行代表者每秒显示的频率,越大越好。
如果直接创建sprite::create(文件名),如果使用同一个文件创建2个sprite,那么会渲染2次。这样不好,如果想减少渲染次数,可以用SpriteBatchNode。
SpriteBatchNode的使用方法是:先创建一个SpriteBatchNode,参数为一个素材图片,然后将这个SpriteBatchNode加到layer上,然后使用这个素材图片创建无数个sprite,加到SpriteBatchNode上,位置是针对layer的。无论增加多少sprite,渲染次数都为1。
如果需要渲染不止一个素材图片的时候,可以先把素材图片通过zwoptex做成一个素材图片和一个plist,然后使用把plist加入SpriteFrameCache缓存中,然后使用这个合成后的素材图片创建一个SpriteBatchNode,然后再用SpriteFrameCache的getSpriteFrameByName方法,参数为原始图片的名字,得到一个动画帧,然后将动画帧创建成sprite即可,这样可以使用无数个素材图片绘制无数个sprite,渲染次数都为1。
如果渲染不止一个合成图片的时候,可以将多个合成图片组成一个大的合成图片,但是这样会导致游戏的包很大,所以最好不要这样,而是,在一个layer上加上多个SpriteBatchNode,每个SpriteBatchNode对应一个合同图片,不过这样的话,渲染次数就不是1了,而是有几个SpriteBatchNode,渲染次数就是几。
笔者制作网站的目的,主要是借用自己之前的知识背景(Android App开发和图形学知识),将自己学习笔记拿出来,和大家一起进行交流,毕竟每个人的知识体系不同,有交流才会有提高,所以欢迎大家通过各种方式和我联系。
网址:www.geekfaner.com
youku教学视频:http://i.youku.com/geekfaner
“百度传课”教学视频(高清版_推荐):http://www.chuanke.com/s2588605.html