Cocos2d v2 + Chipmunk:向CCLayer添加形状时失败

时间:2012-07-28 17:00:54

标签: objective-c ios cocos2d-iphone chipmunk

我对Cocos2d和Box2d非常有经验,并且想尝试使用Chipmunk。只要我将精灵添加到helloworldlayer,一切正常,但如果我添加另一个图层并尝试将精灵添加到该新图层,它会崩溃。

在主层更新中的cpSpaceStep函数调用中,它失败并显示EXC_BAD_ACCESS。

-(void) update:(ccTime) delta
{
    // Should use a fixed size step based on the animation interval.

    int steps = 2;
    CGFloat dt = [[CCDirector sharedDirector] animationInterval]/(CGFloat)steps;

    for(int i=0; i<steps; i++){
        HERE -> cpSpaceStep(space_, dt);
    }

}

编辑: 问题似乎是关于精灵批处理节点而不是CCLayers。

1 个答案:

答案 0 :(得分:1)

Chipmunk实际上并不直接与Cocos2D交互,它只是一个物理引擎。因此,如果它在cpSpaceStep()中使用EXC_BAD_ACCESS崩溃,那几乎可以肯定是因为你在某处给了Chipmunk一个悬空指针,或者有另一个内存错误,它破坏了Chipmunk正在使用的数据。

如果将其编译为debug,它在哪里崩溃?您是否正在使用任何回调并且确定它不会发生在其中之一?