Несколько cpShapes (бурундук)

Итак, я создал две формы (точнее, поли), и мне нужно прикрепить их к одному 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)];

P.S Пользуюсь spaceManager + бурундук


person Stephen    schedule 28.03.2011    source источник


Ответы (2)


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

person Stephane Delcroix    schedule 18.02.2013

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

Хотя, вероятно, было бы проще сделать два спрайта и прикрепить один спрайт к одной форме.

person Pat    schedule 02.02.2013