Osp*_*pho 3 objective-c objective-c++ box2d cocos2d-iphone
我使用cocos2d(iOS)和box2d来创建游戏.
我已经到了需要更改接触过滤器中间模拟的地步,并想知道如何解决这个问题.
我需要使用maskbits和categorybits,这很好,我只是不确定如何将它们应用到b2body游戏中.
我想我可能需要在初始化时检索b2body的原始b2fixture或b2fixturedef,相应地更改值然后调用方法刷新 - world.Refilter()?
这听起来有点准确吗?
奥利弗肯定赞赏任何建议.
b2Filter filter;
for ( b2Fixture* f = body->GetFixtureList(); f; f = f->GetNext() ) {
f->GetFilterData( &filter );
filter.categoryBits = ...;
filter.maskBits = ...;
filter.groupIndex = ...;
f->SetFilterData( &filter );
}
Run Code Online (Sandbox Code Playgroud)
显然这会改变身体上所有灯具的滤波器设置- 如果你想要更具选择性,你必须能够以某种方式告诉哪个灯具.例如.如果你知道它是唯一的圆形夹具,你可以看看要确定的夹具类型,否则你将不得不使用夹具的用户数据.
| 归档时间: |
|
| 查看次数: |
2770 次 |
| 最近记录: |