Несколько cpShapes (бурундук) - PullRequest
2 голосов
/ 29 марта 2011

Итак, я создал две фигуры (точнее, поли), и мне нужно иметь возможность прикрепить их к одному CCSprite / изображению и оставить их в том положении, в котором я их создал.Есть ли способ сделать это?

Короче говоря, это то, чего я пытаюсь достичь.

  • У меня есть шина (CCSprite / image), и я создал 2 поли / 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)];

PS Я использую spaceManager + chipmunk

Ответы [ 2 ]

0 голосов
/ 19 февраля 2013

По сути, вы создаете один cpBody и прикрепляете к нему 2 cpShape.Использование ccPhysicsSprite позволяет вам прикрепить спрайт к телу, что является результатом, который вы пытаетесь получить.

0 голосов
/ 03 февраля 2013

Если spaceManager что-то делает для вас, вы сами должны определить, как прикрепляются cpShapes и CCSprites. Все, что я сделал бы, это подкласс CCSprite и переопределить -draw. В функции -draw обновите положение и поворот спрайта до центра двух фигур вместе.

Вероятно, было бы проще создать два спрайта и прикрепить один спрайт к одной фигуре.

...