我正在拋出一個對象(box2d),但是當我嘗試進行碰撞檢測時,它給了我該對象的CGRect上的錯誤。見下圖EXC_BAD_ACCESS cocos2d - box2d
,這就是我如何創建對象的身體
-(void) createObject
{
freeBodySprite = [CCSprite spriteWithFile:@"object.png"];
//freeBodySprite.position = ccp(100, 300);
[self addChild:freeBodySprite z:2 tag:6];
CGPoint startPos = CGPointMake(150, 320/1.25);
bodyDef.type = b2_staticBody;
bodyDef.position = [self toMeters:startPos];
bodyDef.userData = freeBodySprite;
float radiusInMeters = ((freeBodySprite.contentSize.width * freeBodySprite.scale/PTM_RATIO) * 0.5f);
shape.m_radius = radiusInMeters;
fixtureDef.shape = &shape;
fixtureDef.density = 0.02f;
fixtureDef.friction = 1.0f;
fixtureDef.restitution = 0.0f;
circularObstacleBody = world->CreateBody(&bodyDef);
stoneFixture = circularObstacleBody->CreateFixture(&fixtureDef);
freeBody = circularObstacleBody;
}
在exc_bad_access被引發的那一行代碼之前,你確定'freeBodySprite'不是'nil'嗎? –
沒有。有時它可以工作,有時不工作。 – Zohaib