cocostudio的碰撞编辑区编辑出来的形状读取到程序中有各种问题,
1:比如会造成混乱,
body1:category = 1,
body2:category = 2,
body3:category = 4,
但是碰撞检测时,得到定制器1的fixture会是定制器2的数据;但是body确实对的,这个是我测试出来的,如果用自己手写的fixture是不会有这个问题的。
body1是不会跟body2发生碰撞,但是却会发生。
b2Fixture* fixtureA = contact->GetFixtureA();
b2Fixture* fixtureB = contact->GetFixtureB();
b2Body *bodyA = (b2Body *)fixtureA->GetBody();
b2Body *bodyB = (b2Body *)fixtureB->GetBody();
如上四句代码,假设body1与body3发生碰撞,
假设:fixtureA是body1的,fixtureB是body3的
但是真实得到的确实:fixtureA为body1,fixtureB为body2,下面得到的bodyA与bodyB确是正确的body,这让我无法理解。
2:如果频繁的使用一个动画,并且加载这个动画的碰撞信息,但是这个碰撞信息会没有读取,就没有创建出fixture。
如:使用动画编辑器编辑了一个动画,发射类武器,在武器上编辑了box2d碰撞框。
在程序中重复使用这个动画来实现hero扔武器,每次扔出一个武器就create一次动画,但是有时候使用setBody没有得到fixture
上面都是我有测试过的。或许是我代码有问题,或许是引擎代码有问题,管理员有看到请回答下我的问题,当然不是管理员有哪个大神知道也请回答下,谢谢!!
我的代码都被我改掉了,没有原来的代码了,我有截图,发给你看看吧,有空我把那个有问题的代码还原了,再发给你