答Cocos2d-x问题,赢经典蓝牙手机游戏手柄和Cocos2d-x 3.X系列图书【获奖名单公布】

  1. 2.x batchnode
    3.x batchrender

  2. 序列帧,骨骼动画

  1. 2.x batchnode
    3.x batchrender

  2. 序列帧,骨骼动画

1 显示列表
CCSpriteBatchNode
CCParticleBatchNode
CCTextureCache
CCSpriteFrameCache
CCAnimationCache

2
序列帧动画
骨骼动画
着色器
CCJump等

1.Cocos2d-x中绘制大量精灵时,有哪些优化方法?

对于Cocos2d-x 2.x:
采用BatchNode(CCSpriteBatchNode、CCParticleBatchNode等),对于精灵采用CCSpriteBatchNode。

步骤1:将创建大量的精灵所需要的纹理合成一张大图包含对应的.plist文件,工具可以采用TexturePacker

步骤2:用上述创建的纹理资源创建一个CCSpriteBatchNode,加入合适的位置

步骤3:使用上述创建的plist中的帧来创建需要大量绘制的精灵,并将精灵做为子节点加入上述创建的CCSpriteBatchNode中

对于Cocos2d-x 3.x:
2dx 3.x加入了另外一种批渲染功能(Auto-Batching).这类就不需要创建一个专门的节点来包含需要批渲染的精灵,引擎会自动
帮我们完成,而需要注意的主要的地方本人归纳为以下两点:

1 、需要做为一个批次渲染的资源还是需要合成一个大图

2、注意Zorder的排序,一个批次的最好是连续区间内

上述过程资源的预加载不用多说,对于在大批量创建精灵这样的操作中还会进行预创建,而对于大量并且会反复创建的情况下还会
加入对应的对象池。

2.Cocos2d-x中常用的动画有哪些?如何创建这些动画?
2dx中常用的动画有两类:序列帧动画 和 骨骼动画

序列帧动画创建方法:
首选:将所有的动画图片帧合成一张大图加plist的,结合Animation类来创建,最后当然就是一个runAction.

骨骼动画创建方法:
直接使用Cocos Studio中的动画编辑器来创建,完了导出对应的JSON文件,在游戏中通过ArmatureDataManager::addArmatureFileInfo
加载,通过Armature::create()创建对应的动画,加入需要播放动画的节点,最后播放刚创建的骨骼动画即可。

:14: :14: :14:

一。CCSpriteBatchNode(精灵缓冲池)、CCParticleBatchNode(粒子缓冲池),texturecatch(纹理缓冲池)
二。序列帧动画,骨骼动画:14::14::14::14:

1
通过批次渲染的方法来优化精灵(方法就是使用CCSpriteBatchNode和CCParticleBatchNode精灵批节点类和粒子批节点类。)
使用缓存提前加载精灵(我们用到的缓存类有CCTextureCache、 CCSpriteFrameCache、CCAnimationCache)
2
序列帧动画
创建方法
手动添加序列帧到Animation类
使用文件初始化Animation类

骨骼动画
使用Spine创建骨骼动画

1.Cocos2d-x中绘制大量精灵时,有哪些优化方法?
对于Cocos2d-x 2.x:
采用BatchNode(CCSpriteBatchNode、CCParticleBatchNode等),对于精灵采用CCSpriteBatchNode。
步骤1:将创建大量的精灵所需要的纹理合成一张大图包含对应的.plist文件,工具可以采用TexturePacker
步骤2:用上述创建的纹理资源创建一个CCSpriteBatchNode,加入合适的位置
步骤3:使用上述创建的plist中的帧来创建需要大量绘制的精灵,并将精灵做为子节点加入上述创建的CCSpriteBatchNode中
对于Cocos2d-x 3.x:
2dx 3.x加入了另外一种批渲染功能(Auto-Batching).这类就不需要创建一个专门的节点来包含需要批渲染的精灵,引擎会自动
帮我们完成,而需要注意的主要的地方本人归纳为以下两点:
1 、需要做为一个批次渲染的资源还是需要合成一个大图
2、注意Zorder的排序,一个批次的最好是连续区间内

上述过程资源的预加载不用多说,对于在大批量创建精灵这样的操作中还会进行预创建,而对于大量并且会反复创建的情况下还会
加入对应的对象池。

2.Cocos2d-x中常用的动画有哪些?如何创建这些动画?
2dx中常用的动画有两类:序列帧动画 和 骨骼动画
序列帧动画创建方法:
首选:将所有的动画图片帧合成一张大图加plist的,结合Animation类来创建,最后当然就是一个runAction.
骨骼动画创建方法:
直接使用Cocos Studio中的动画编辑器来创建,完了导出对应的JSON文件,在游戏中通过ArmatureDataManager::addArmatureFileInfo
加载,通过Armature::create()创建对应的动画,加入需要播放动画的节点,最后播放刚创建的骨骼动画即可。

1
批次渲染:(SpriteBatchNode和ParticleBatchNode精灵批节点类和粒子批节点类。)
缓存:(TextureCache、 SpriteFrameCache、AnimationCache)
2
序列帧动画:从代码或文件读取设置序列帧

骨骼动画:使用Cocostudio的Animation编辑器、Spine编辑器进行编辑,再在程序中进行读取解析

1.Cocos2d-x中绘制大量精灵时,有哪些优化方法?
对于Cocos2d-x 2.x:
采用BatchNode(CCSpriteBatchNode、CCParticleBatchNode等),对于精灵采用CCSpriteBatchNode。
步骤1:将创建大量的精灵所需要的纹理合成一张大图包含对应的.plist文件,工具可以采用TexturePacker
步骤2:用上述创建的纹理资源创建一个CCSpriteBatchNode,加入合适的位置
步骤3:使用上述创建的plist中的帧来创建需要大量绘制的精灵,并将精灵做为子节点加入上述创建的CCSpriteBatchNode中
对于Cocos2d-x 3.x:
2dx 3.x加入了另外一种批渲染功能(Auto-Batching).这类就不需要创建一个专门的节点来包含需要批渲染的精灵,引擎会自动
帮我们完成,而需要注意的主要的地方本人归纳为以下两点:
1 、需要做为一个批次渲染的资源还是需要合成一个大图
2、注意Zorder的排序,一个批次的最好是连续区间内

上述过程资源的预加载不用多说,对于在大批量创建精灵这样的操作中还会进行预创建,而对于大量并且会反复创建的情况下还会
加入对应的对象池。

2.Cocos2d-x中常用的动画有哪些?如何创建这些动画?
2dx中常用的动画有两类:序列帧动画 和 骨骼动画
序列帧动画创建方法:
首选:将所有的动画图片帧合成一张大图加plist的,结合Animation类来创建,最后当然就是一个runAction.
骨骼动画创建方法:
直接使用Cocos Studio中的动画编辑器来创建,完了导出对应的JSON文件,在游戏中通过ArmatureDataManager::addArmatureFileInfo
加载,通过Armature::create()创建对应的动画,加入需要播放动画的节点,最后播放刚创建的骨骼动画即可。

1
2.x 使用CCSpriteBatchNode和CCParticleBatchNode精灵批节点类和粒子批节点类。 3.x 使用batchrender。
用CCTextureCache、 CCSpriteFrameCache、CCAnimationCache
2
(1)序列帧动画,手动添加序列帧到Animation类
(2)骨骼动画,Spine创建

1
通过批次渲染的方法来优化精灵(方法就是使用CCSpriteBatchNode和CCParticleBatchNode精灵批节点

类和粒子批节点类。)
使用缓存提前加载精灵(我们用到的缓存类有CCTextureCache、 CCSpriteFrameCache、

CCAnimationCache)
用C++也可以写出来,自己写个池,不销毁子弹就行了
2.
动画可以使用帧动画,使用CCAnimate播放,也可以用骨骼动画,或者是用cocostudio制作的CCArmature

动画
帧动画需要先把图片添加到数组中(CCSpriteFrame的数组),然后创建CCAnimation,再通过创建的

animation创建animate
骨骼动画和制作的动画就比较简单了,提前把动画添加进缓存(CCArmatureDataManager),使用的时候

直接创建CCArmature

1
批次渲染:(SpriteBatchNode和ParticleBatchNode精灵批节点类和粒子批节点类。)
缓存:(TextureCache、 SpriteFrameCache、AnimationCache)
2
序列帧动画:从代码或文件读取设置序列帧

骨骼动画:使用Cocostudio的Animation编辑器、Spine编辑器进行编辑,再在程序中进行读取解析

1
通过批次渲染的方法来优化精灵(方法就是使用CCSpriteBatchNode和CCParticleBatchNode精灵批节点

类和粒子批节点类。)
使用缓存提前加载精灵(我们用到的缓存类有CCTextureCache、 CCSpriteFrameCache、

CCAnimationCache)
用C++也可以写出来,自己写个池,不销毁子弹就行了
2.
动画可以使用帧动画,使用CCAnimate播放,也可以用骨骼动画,或者是用cocostudio制作的CCArmature

动画
帧动画需要先把图片添加到数组中(CCSpriteFrame的数组),然后创建CCAnimation,再通过创建的

animation创建animate
骨骼动画和制作的动画就比较简单了,提前把动画添加进缓存(CCArmatureDataManager),使用的时候

直接创建CCArmature


2.x batchnode
3.x batchrender
具体将其做成 png 图片,并建立plist属性文件,然后去加载


序列帧,骨骼动画 , 可以利用粒子系统编辑软件Particle designer来制作

2.x batchnode
3.x batchrender

序列帧,骨骼动画

1.Cocos2d-x中绘制大量精灵时,有哪些优化方法?
a、自定义数据管理。需要的时候加载保存,直接从内存读取数据创建精灵,退出的时候再做真正的清理。一般map和hash结合使用;
b、碎图合并预加载使用缓存;
c、Tiled地图采用多层叠加方式处理,尽可能的把逻辑功能进行拆分,让Tiled地图功能单一化,减少逻辑复杂度和数据;
2.Cocos2d-x中常用的动画有哪些?如何创建这些动画?
a、帧动画和骨骼动画(Animation,spine)


2.x batchnode
3.x batchrender


序列帧、
骨骼动画

第一个答案:
1.利用帧缓存创建精灵,加载多个相同的精灵的时候利用此方式相当优化运行内存
2.使用CCSpriteBatchNode优化绘制一批相同的精灵
3.Cocos2d-x缓存池对象重复使用
4.使用纹理图集:TexturePacker
第二个答案:
一种是骨骼动画,另一种是帧动画 官方就有两个工具 CocosStudio 和 CocosBuilder


2.x batchnode
3.x batchrender


序列帧,骨骼动画

:6::2:

1.Cocos2d-x中绘制大量精灵时,有哪些优化方法?
首先同时在同一个场景出现大量sprite,影响性能是肯定的,要么在游戏设计上做修改;要么尽量减少没有在此场景中出现的图片的加载;利用内存查看工具查看图片的加载,减少泄露;另外Coco2dx 3.0以后有了处理这方面的机制,如果不在屏幕内的sprite讲不占用资源。
2.Cocos2d-x中常用的动画有哪些?如何创建这些动画?
我是从cocos2d开始使用的,早期只有动画帧可以用,后来出现了类似spriteHelper之类的第三方工具,后来cocosBuilder出现了类似骨骼动画的编辑器,提高了很大的效率,到现在cocos系列开发工具支持帧动画、骨骼动画,可以用cocos动画编辑器编辑后导出相应的数据文件后在场景编辑器中使用,或在项目中直接调用。