CCBatchNode使用的问题

项目中用到大量的动画,就选择使用了CCBatchNode,FPS还算稳定,但使用CCBatchNode后,CCArmature的boundingBox()数值不准确了,测试发现貌似是原来的2倍,cocostudio里面设置的骨骼动画的碰撞矩形位置也不正确了,后续使用同一个纹理的骨骼动画其碰撞矩形全部在左边不会跟随角色移动,这个是为什么呢,求大神帮忙解决!

希望说下版本号等信息:2::2:

cocos2dx 2.2.1 cocostudio1.1.0

是否做缩放了呢?方便提供项目发给我们的工程师测试么?

没有做过缩放,项目内网机传不出去,就很简单的在cocostudio里面做的骨骼动画,在项目中创建了几个CCBatchNode,根据类型往不同的bathNode中添加,显示之后碰撞位置就变了 如果把BatchNode换成CCNode就完全正常

版主你好,我在cocostudio的DEMOGame中做了测试 也不行,取消原有addchild把三个敌人的CCArmature加入到同一个BathNode中,修改代码如下void PhysicalWorld::initPhysics()
{
//create world without gravity
b2Vec2 gravity(0,0);
world = new b2World(gravity);

world->SetAllowSleeping(true);

#warning 测试
bath= CCBatchNode ::create();
addChild(bath);
// owner contact listener
contactListener = new MyContactListener();
world->SetContactListener(contactListener);

在添加敌人的方法中修改如下

void PhysicalWorld::addEnemyIntoWorld(Enemy* pEnemy)
{
#warning 测试
bath->addChild(pEnemy->getArmature());

this->addChild(pEnemy);


b2BodyDef bodyDef;

效果如下图所示

恩,你这个截图是真机么?分辨率是多少啊?我记得之前有报过因高清屏出现碰撞区大小的问题。
这个图我可能看不到问题的所在,希望能明确指一下问题位置或者数据,以便我们重现问题并修复。

这个是附带的demo 截图是模拟器的效果,真机上960*640的也是这个样子 问题是正常情况应该如下图所示,碰撞矩形在人物的躯干部分 但使用ccBathnode之后 矩形就跑出人物躯干了,而且获取人物boundingBox也不对

正确的如下图所示

好的,楼主,刚和动画工程师碰过这块了,bathnode目前确实存在这个问题,但是目前还是没有解决方案。希望暂时将这种需要做碰撞检测的不要用bathnode。

batchNode是只能针对同一个动画 使用多次的 时候 使用吗 ,多个不同动画要用多个batchNode吗

多个不同的要使用多个,同一个的话 会记录最后一次的

多个的话 这 遮挡关系 咋处理……