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

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

2.x batchnode
3.x batchrender
2.
序列帧,骨骼动画

1
通过批次渲染的方法来优化精灵
使用缓存提前加载精灵
2
序列帧动画
创建方法
手动添加序列帧到Animation类
使用文件初始化Animation类

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

目前只用过 SpriteBatchNode来进行优化使用大量精灵的情况,如三消游戏,飞机游戏 的子弹。。

动画用过序列帧,还有用cocostudio做的骨骼动画 。

一.
1.SpriteBatchNode批次绘制一批相同纹理的精灵
2.ParticleBatchNode批次绘制相同的粒子
3.建立一个缓存池每次使用时取出
4.利用帧缓存创建精灵,加载多个相同的精灵的时候利用此方式相当优化运行内存

二.
常用的动画有两种:
1.帧动画
//创建cache
SpriteFrameCache* frameCache = SpriteFrameCache::getInstance();
frameCache->addSpriteFramesWithFile( “hero.plist” );
Animation *ani = Animation::create();
ani->setLoops( -1 );
ani->setDelayPerUnit( 6.0f/12.0f );
for(int i = 1; i <= 6; i++)
{
const char frameName = __String::createWithFormat(“hero%d.png”, i);
SpriteFrame
frame = frameCache->getSpriteFrameByName( frameName );
ani->addSpriteFrame( frame );
}
frameCache->removeUnusedSpriteFrames();

骨骼动画创建:
1.用CocosBuilder创建人物动画
2.使用CCArmature包实现骨骼动画

第一个问题:
在2.x版本中用CCBatchnode实现,3.x暂时没用过,不过很期待;
第二个问题:
传统的有序列帧动画、骨骼动画,粒子效果也应该归到动画的范畴之内;
其实发挥Cocos2dx开源的优势,还可以自己写动画粒子编辑器(将动画和粒子编辑器结合),针对资源大小进行优化;

一:优化方法使用CCSpriteBatchNode和CCParticleBatchNode精灵批节点类和粒子批节点类。
二:常用动画及其实现:1精灵动画的三种实现:
用精灵帧创建精灵动画(创建方式 static SpriteFrame * frameWithTexture(Texture *,const Rect&))、
动画类 Animation、
用动画编辑器生成plist并加载
2.骨骼动画
使用Spine等骨骼动画编辑器制作动画或者使用Armature类

一:SpriteBatchNode和ParticleBatchNode。
二:序列帧动画和骨骼动画。
志在参与!

保持阵型…

batchnode


序列帧,骨骼动画


2.x batchnode
3.x batchrender


序列帧,骨骼动画

凑个热闹,哈哈:14::14::14::14:

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

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

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

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

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

直接创建CCArmature


2.x batchnode
3.x batchrender


序列帧,骨骼动画
:11::11::11:

1.通过合图(多小图拼成大图)、批次渲染的方法来优化精灵;

2.普通帧动画:可直在程序中手动生成,也可用工具生成后在程序中调用;
骨骼动画:用工具生成后在程序中调用。

首先,资源的选取,可以把大量的图片压缩成精灵表(sheet),然后在输出的像素格式选取RGBA4444的,像素抖动(Dithering)选取 FloydSteinberg+Alpha,这样可以比RGBA8888 的内存占有量小一半,精灵表的格式可以选取.pvr.ccz,可以减少包的体积。
工具使用:TexturePacker(TP)等。
其次,加载方式可以使用cocos2d-x 自带的异步加载方式,pvr.ccz 的异步加载好像是v3.0 以后才支持的。
经常使用的可以在游戏加载的时候加入缓冲池,使用的时候直接pop就可以了。
最后,渲染方式可以选择cocosd-x自带批处理方法BatchNode(粒子效果也有一个)。
2
cocos2d-x 常用的动画格式有 :
引擎自带的几种动画,直接调用就可以。
也可以自定义序列帧的动画格式,用到的方法有CAnimationCache::sharedAnimationCache()->addAnimation(CCAnimation::createWithSpriteFrames(ay,delay),name)等。
骨骼动画,可以通过cocos studio制作,使用也很简单,论坛里有使用方法。
GAF动画(generic animation format),一般通用动画格式,需要使用工具GAF-Converter,该工具有免费和非免费版本,转换flash动画,使用方法可以去%url%查看,也挺简单,支持cocos2d-x和cocos2d。

:4:没做过游戏开发,膜拜下各路大神


2.x batchnode
3.x batchrender


序列帧,骨骼动画


2.x batchnode
3.x batchrender


序列帧,骨骼动画

1、使用CCSpriteBatchNode和CCParticleBatchNode批处理
使用缓存预加载精灵,比如:CCTextureCache、 CCSpriteFrameCache、CCAnimationCache
2、序列帧动画
骨骼动画

1、
通过批量渲染的方法来优化精灵
使用缓存提前加载精灵

2、
序列帧动画
创建方法:手动添加序列帧到Animation类;使用文件初始化Animation类。

骨骼动画
创建方法:使用Spine创建骨骼动画

楼上给位都写得很好、我想没我的份了 我就像看看最后一本书而已