CCArmature怎样提高性能

我的游戏现在使用了大量的骨骼动画,120个对象,每个对象10个部件,运行时帧数掉到30左右,渲染批次300左右,并且CCArmature不能使用CCSpriteBatchNode,请教各位如何提高性能

![](file:///C:/capture.png)

Armature 可以用BatchNode的,这个你可以参考下testcpp的

BZ你好,用了CCBatchNode确实提高了性能,但出现一个问题,应该是一个cocos2d-x 2.2版本下的bug,我现在的游戏是在2.2版本下开发的,一旦使用CCBatchNode,其他后续加到该CCBatchNode的CCArmature对象的显示位置都错了(但Log的坐标都是正确的),而2.2.1版本下没有这个问题,我现在不想把工程挪到2.2.1下,请问怎么解决?

以下对2.2的例子修改可以发现该问题:

首先在ArmatureScene.h的TestPerformance类中添加成员
CCBatchNode *batchNode;

再在.cpp中修改如下两个方法(有右注释的行是添加的修改)
void TestPerformance::onEnter()
{
ArmatureTestLayer::onEnter();

armatureCount = frames = times = lastTimes = 0;
generated = false;
batchNode = CCBatchNode::create(); // create CCBatchNode
addChild(batchNode); // add CCBatchNode
scheduleUpdate();

}

void TestPerformance::addArmature(cocos2d::extension::CCArmature *armature)
{
armatureCount++;
batchNode->addChild(armature, 0, armatureCount); // add CCArmature to CCBatchNode
}

你的意思是在2.2.1没问题在2.2.0有问题还是?希望能提供个截图说名称错误的效果。如设计隐私可用test里的armature代替资源

我这边意思确实是2.2.1没有问题,2.2有问题,按照前面我说的步骤,直接改2.2里test里的文件就能发现这个问题


如图,所有的armature都在一个坐标上,但抓的log看起来坐标又都没错

为什么我运行的例子是这样的呢,如图,渲染次数 和 个数 是成比例增加的 ,batchNode 没起到作用 ?

原来 我看错例子了 !!! 不好意思