Cocos2d iphone BOX2D:EXC_创建鼠标点时访问错误

Cocos2d iphone BOX2D:EXC_创建鼠标点时访问错误,cocos2d-iphone,box2d,Cocos2d Iphone,Box2d,我试图创建一个MouseJoint对象,但由于某些原因,在b2World上调用CreateJoint时Box2D会爆炸。我是box2d新手,我无法确定我在这里做错了什么。我正在使用Cocos2d并启用了触摸功能。在CCTouchesBegindDelegate方法中,我正在测试用户是否触摸了感兴趣的主体;划桨 构建b2MouseJointDef对象后,此行会导致异常: _mouseJoint=b2MouseJoint*_world->CreateJoint&md 世界对象似乎正在尝试创建连接。在

我试图创建一个MouseJoint对象,但由于某些原因,在b2World上调用CreateJoint时Box2D会爆炸。我是box2d新手,我无法确定我在这里做错了什么。我正在使用Cocos2d并启用了触摸功能。在CCTouchesBegindDelegate方法中,我正在测试用户是否触摸了感兴趣的主体;划桨

构建b2MouseJointDef对象后,此行会导致异常:

_mouseJoint=b2MouseJoint*_world->CreateJoint&md

世界对象似乎正在尝试创建连接。在这里,整个接触开始了。有什么想法吗

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

if (_mouseJoint != NULL) return;

UITouch *myTouch = [touches anyObject];
CGPoint location = [myTouch locationInView:[myTouch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
b2Vec2 locationWorld = b2Vec2(location.x/PTM_RATIO, location.y/PTM_RATIO);

if (_paddleFixture->TestPoint(locationWorld)) {
    b2MouseJointDef md;
    md.bodyA = _groundBody;
    md.bodyB = _paddleBody;
    md.target = locationWorld;
    md.collideConnected = true;
    md.maxForce = 1000.0f * _paddleBody->GetMass();

    _mouseJoint = (b2MouseJoint *)_world->CreateJoint(&md);
    _paddleBody->SetAwake(true);
}

}

看起来像是_world变量保存垃圾而不是B2world您确定_world是有效的指针吗?但是调用了CreateJoint。所以_world必须是一个有效的指针。