Я не могу добавить тело в мой спрайт box2d ОБНОВЛЕНО

Хорошо, я следую учебнику по RW на box2d, я дошел до того, что добавил тело к спрайтам, хорошо, вот проблема,

я могу добавить тело спрайта к спрайту 'cat', но когда я пытаюсь добавить тело к спрайту 'car', он просто падает. Он работает нормально, если я только добавляю тело к спрайту 'cat', но почему я не могу добавить тело к "машине"? они оба используют один и тот же метод для добавления тела!

Вот метод добавления тела:

- (void)addBoxBodyForSprite:(CCSprite *)sprite {

b2BodyDef spriteBodyDef;
spriteBodyDef.type = b2_dynamicBody;
spriteBodyDef.position.Set(sprite.position.x/PTM_RATIO, 
                           sprite.position.y/PTM_RATIO);
spriteBodyDef.userData = sprite;
b2Body *spriteBody = _world->CreateBody(&spriteBodyDef);

b2PolygonShape spriteShape;
spriteShape.SetAsBox(sprite.contentSize.width/PTM_RATIO/2,
                     sprite.contentSize.height/PTM_RATIO/2);
b2FixtureDef spriteShapeDef;
spriteShapeDef.shape = &spriteShape;
spriteShapeDef.density = 10.0;
spriteShapeDef.isSensor = true;
spriteBody->CreateFixture(&spriteShapeDef);

}

вот код для "кота"

- (void)spawnCat {

CGSize winSize = [CCDirector sharedDirector].winSize;

CCSprite *cat = [CCSprite spriteWithSpriteFrameName:@"cat.jpg"];

//code here.......


[self addBoxBodyForSprite:cat];
[_spriteSheet addChild:cat];

}

вот код для "машины"

- (void)spawnCar {

CCSprite *car = [CCSprite spriteWithSpriteFrameName:@"car.jpg"];
car.position = ccp(100, 100);
car.tag = 2;

[self addBoxBodyForSprite:car];
[_spriteSheet addChild:car];

}

хорошо с приведенным выше кодом, он падает, но если я удаляю [self addBoxBodyForSprite:car]; из метода spawnCar, то он не падает, и только у "кошки" есть тело, а не у "машины".... нужна помощь, я очень смущен в данный момент. Спасибо

1 ответ

Решение

Можете ли вы установить точку останова в начале метода addBoxBodyForSprite и пройтись по коду, чтобы определить, в какой момент происходит сбой? Важно точно определить, что является причиной проблемы... все в вашем методе выглядит нормально, поэтому вам нужно убедиться, что именно здесь происходит ошибка.

Ищите Xcode Debugging, если вы не знаете, как это сделать.

Другие вопросы по тегам