多个cpShapes(花栗鼠)

时间:2011-03-28 21:53:39

标签: cocos2d-iphone chipmunk

所以我创建了两个形状(准确地说是poly),我需要能够将它们附加到单个CCSprite / image,并让它们保持在我创建它们的位置。有没有办法做到这一点?

所以简而言之,这就是我想要实现的目标。

  • 我有一个轮胎(CCSprite / image),我创造了2个poly / cpShapes,一个用于顶部,一个用于轮胎底部,这样当用户投掷足球时,它只能通过它的中心
  • 我需要将顶部聚合物连接到轮胎顶部,将底部聚合物连接到轮胎底部
  • 我还需要能够在轮胎上使用碰撞。例如,如果用户投掷足球并且它击中轮胎的底部,我需要能够使轮胎前后摆动,两种形状随之移动。

所以我的问题实际上只是如何将两个cpShapes附加到一个图像/ CCSprite?

我已经创建了我的形状:

cpShape *UpperShape = [game.spaceManager addPolyAt:cpv(70,195) mass:STATIC_MASS rotation:0 numPoints:6 points:cpv(2,12), cpv(28,8), cpv(33,0), cpv(36,-10), cpv(-33,-10), cpv(-20,8)];

cpShape *LowerShape = [game.spaceManager addPolyAt:cpv(70,125) mass:STATIC_MASS rotation:0 numPoints:7 points:cpv(34,8), cpv(31,0), cpv(25,-9), cpv(7,-13), cpv(-20,-8), cpv(-30,0), cpv(-35,8)];

P.S我正在使用spaceManager + chipmunk

2 个答案:

答案 0 :(得分:0)

除非spaceManager为您做某事,否则您需要确定cpShapes和CCSprites的附加方式。我要做的只是子类CCSprite和override -draw。在-draw函数中,将精灵的位置和旋转更新为两个形状的中心。

制作两个精灵并将一个精灵附加到一个形状可能会更容易。

答案 1 :(得分:0)

基本上,您创建一个cpBody,并将2个cpShape附加到它上面。使用ccPhysicsSprite可以将精灵附加到正文,这是你想要获得的结果。