您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d学习之路五(Box2d使用CCPhysicsSprite时编译不通过解决方法)

2014-04-12 15:41 274 查看

cocos2d使用box2d引擎,在使用CCPhysicsSprite添加精灵的时候会出现编译不通过错误。

需要注意以下几点:

1.sprite.position=ccp(p.x,p.y);这行代码一定要在[sprite
setB2Body:body];之后。否则编译不通过。

2.不要忘记添加[sprite setPTMRatio:PTM_RATIO];这行代码也要在setPosition之前

添加小球精灵示例代码:

#pragma mark 添加精灵
-(void) addNewSpriteAtPosition:(CGPoint)p
{

//创建小球精灵对象
ball=[CCPhysicsSprite spriteWithFile:@"ball.png"];
[ball setPTMRatio:PTM_RATIO];  //不要忘记
ball.tag=1;
[self addChild:ball];

//创建小球物体
b2BodyDef ballBodyDef;
ballBodyDef.type=b2_dynamicBody;
ballBodyDef.position.Set(p.x/PTM_RATIO, p.y/PTM_RATIO);
ballBody=world->CreateBody(&ballBodyDef);
//创建小球物体的形状。
b2CircleShape circle;
circle.m_radius=8.0/PTM_RATIO;
//创建小球物体的夹具
b2FixtureDef ballShapeDef;
ballShapeDef.shape=&circle;   //形状
ballShapeDef.density=1.0f;    //密度
ballShapeDef.friction=0.3f;   //摩擦力
ballShapeDef.restitution=1.0; //恢复力
ballFixture=ballBody->CreateFixture(&ballShapeDef);
[ball  setB2Body:ballBody];  //将小球物体和精灵联系起来
ball.position=ccp(p.x, p.y);  //一定要在上一行代码之后
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐