我正在做一个 box2d 应用程序。我在世界上创造了 2 个不同的身体。检查此代码
-(void)init{
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sheet.plist"];
CCSpriteBatchNode *parent = [CCSpriteBatchNode batchNodeWithFile:@"sheet.png" capacity:100];
spriteTexture_ = [parent texture];
[self addChild:parent z:0 tag:kTagParentNode];
}
-(void)bodyCreation
{
CCNode *parent = [self getChildByTag:kTagParentNode];
PhysicsSprite *sprite = [PhysicsSprite spriteWithSpriteFrameName:@"bodySprite1.png"];
[parent addChild:sprite];
b2BodyDef ballBodyDef;
ballBodyDef.type = b2_dynamicBody;
ballBodyDef.bullet = true;
ballBodyDef.position.Set(1210.0f/PTM_RATIO, 250.0f/PTM_RATIO);
randombody = world->CreateBody(&ballBodyDef);
b2CircleShape circle;
circle.m_radius = 16.0/PTM_RATIO;
weightBallDef.shape = &circle;
weightBallDef.density = 10.0f;
weightBallDef.restitution = 0.2f;
randomFixture = randombody->CreateFixture(&weightBallDef);
[sprite setPhysicsBody:randombody];
}
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
CCNode *parent = [self getChildByTag:kTagParentNode];
PhysicsSprite *sprite11 = [PhysicsSprite spriteWithSpriteFrameName:@"bodySprite2.jpg"];
[parent addChild:sprite11];
sprite11.position = ccp(touchBegin.x, touchBegin.y);
b2BodyDef ballBodyDef;
ballBodyDef.type = b2_dynamicBody;
ballBodyDef.bullet = true;
ballBodyDef.position.Set(touchBeginLocationWorld.x, touchBeginLocationWorld.y);
ballbody = world->CreateBody(&ballBodyDef);
b2PolygonShape box;
box.SetAsBox(sprite11.contentSize.width/PTM_RATIO/2, sprite11.contentSize.height/PTM_RATIO/2);
batShapeDef.shape = &box;
batShapeDef.density = 10.0f;
ballFixture = ballbody->CreateFixture(&batShapeDef);
[sprite11 setPhysicsBody:ballbody];
}
我的例外结果是这样的:
但有时我会变成这样:
如何解决这个问题。谁来帮帮我...
谢谢...