cocos2d-x3.0,使用PhysicsBody::createEdgeBox创建静态刚体不能被移动

使用PhysicsBody::createEdgeBox创建静态刚体
加入到layer中
调用layer->setPosition();
layer的其他部分移动了,刚体不能被移动

是准备做镜头跟随的
这是bug么?

如果不是bug怎么在物理世界里做镜头跟随?

在初始化的时候先用PhysicsBody::createEdgeBox创建一个物理世界边缘(一般是窗口大小),PhysicsBody::createBox添加物体。
不太清楚你的镜头跟随是什么效果,如果只是任务场景居中的话,直接move场景就可以了。

— Begin quote from ____

引用第1楼maikesen于2014-04-17 08:59发表的 回 楼主(hwhwd) 的帖子 :
在初始化的时候先用PhysicsBody::createEdgeBox创建一个物理世界边缘(一般是窗口大小),PhysicsBody::createBox添加物体。
不太清楚你的镜头跟随是什么效果,如果只是任务场景居中的话,直接move场景就可以了。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=198374&pid=929191

— End quote

"PhysicsBody::createBox"是创建动态刚体,楼主的是想在背景上创建几个静态的刚体,质量无穷大,不受重力影响,但是能被手动移动位置
layer里没有找到move方法…楼主之前的做法是:layer的update方法里调用layer->setposition()…之前一直工作正常…直到加入静态刚体

我的意思是:场景初始化的时候要设置物理世界的边缘
auto visibleSize = Director::getInstance()->getVisibleSize();
auto origin = Director::getInstance()->getVisibleOrigin();
auto sprite = Sprite::create();
auto body = PhysicsBody::createEdgeBox(visibleSize, PHYSICSBODY_MATERIAL_DEFAULT, 3);
body->setDynamic(false);
sprite->setPosition(origin + Point(visibleSize.width/2, visibleSize.height/2));
sprite->setPhysicsBody(body);
this->addChild(sprite);
然后才创建物体【body就是PhysicsBody::createBox()了,不是PhysicsBody::createEdgeBox()】

还有就是不太清楚你的镜头跟随是要做到什么效果的。

楼主没反应了?是不是同一个世界同一个梦想的问题?就是body在物理世界的位置是精灵相对于父类的位置。如果只是移动父类或者精灵的父类不是以origin开始的话会有偏移的。

目前移动Layer物理世界是不会移动的。。。做镜头更随需要自行移动物理物体

— Begin quote from ____

引用第6楼ryeeeeee于2014-04-17 18:02发表的 回 楼主(hwhwd) 的帖子 :
目前移动Layer物理世界是不会移动的。。。做镜头更随需要自行移动物理物体

http://www.cocoachina.com/bbs/job.php?action=topost&tid=198374&pid=930009

— End quote

自行也移不动呀…
使用sprite->setposition(),绑定了静态刚体的移不动呀…:3::3::3:

— Begin quote from ____

引用第5楼maikesen于2014-04-17 16:31发表的 回 2楼(hwhwd) 的帖子 :
楼主没反应了?是不是同一个世界同一个梦想的问题?就是body在物理世界的位置是精灵相对于父类的位置。如果只是移动父类或者精灵的父类不是以origin开始的话会有偏移的。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=198374&pid=929873

— End quote

…下午刚睡起来…
是"同一个世界同一个梦想"的问题…:2:
更问题的是…似乎我单独移动子类也不行,只要它绑定了静态刚体

不是通过sprite来设置位置,而是通过直接操作物理物体(physicsbody)

setPosition 有bug, 没递归子节点对physicsbody 处理。physicsbody 世界坐标有问题的话,sprite怎么setpostion都是没用的.

http://www.cocoachina.com/bbs/read.php?tid=194609
找到相关讨论了

大意是:3.0中的PhysicsBody不支持物理世界的移动的拉.(也就是在物理世界中不支持镜头移动)
想使用camera的同学也别费事了…3.0没那接口
请乖乖使用box2d去实现

引擎自己封装的就这样,当你添上刚体后,精灵会脱离layer层,据说正式版会关联上,现在你需要移动物理世界