连接两个精灵Cocos2d 3.0

时间:2014-05-26 18:54:32

标签: cocos2d-iphone sprite

如何连接这两个精灵?但它不是一个移动的联合,而是一个牢固的联系,两者都在一起?谢谢:))

cart = [CCSprite spriteWithImageNamed:@"bottomCart.png"];
cart.position = ccp(self.contentSize.width/2, self.contentSize.height/3);
cart.physicsBody = [CCPhysicsBody bodyWithRect:(CGRect){CGPointZero, cart.contentSize} cornerRadius:0];
cart.physicsBody.collisionGroup = @"cartGroup";
cart.physicsBody.collisionType = @"cartCollision";
cart.physicsBody.type = CCPhysicsBodyTypeDynamic;
[_physicsWorld addChild:cart];

wheel1 = [CCSprite spriteWithImageNamed:@"blackball.png"];
wheel1.position = ccp(self.contentSize.width/2, self.contentSize.height/3);
wheel1.physicsBody = [CCPhysicsBody bodyWithCircleOfRadius:wheel1.contentSize.width/2.0f andCenter:wheel1.anchorPointInPoints];
wheel1.physicsBody.collisionGroup = @"cartGroup";
wheel1.physicsBody.collisionType = @"cartCollision";
wheel1.physicsBody.type = CCPhysicsBodyTypeDynamic;
[_physicsWorld addChild:wheel1];

1 个答案:

答案 0 :(得分:1)

实际上你需要一个关节。

你必须使用一种叫做 pin joint 的东西:CCPhysicsJoint

使用针脚连接可以在一个点上连接两个CCPhysicsBody个对象。

在这个用例中,除非你有一个很好的理由我根本不会使用物理学的轮子。我会将wheel定义为cart的孩子,并在其上应用CCActionRepeatForever + CCActionRotate组合以使其旋转。

对于物理仍然用轮子来说,我会在父车上使用像SpriteBuilder这样的可视化工具定义一个更大的多边形作为物理主体。