Создание CCSprites и использование их в качестве веревки - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть шина на моем экране, и я хотел бы, чтобы веревка была присоединена к верхней части шины и к верхней части экрана. Я включил физику в свою игру с помощью chipmunk + spaceManager, поэтому мне нужно кое-что, как эта веревка также реагирует на физику. Мне просто нужно, чтобы она двигалась назад и вперед с шиной, когда ее ударили. Я использовал cpConstraintNode, чтобы нарисовать линию, чтобы использовать ее в качестве верёвки до этого момента, но все, что я видел и изучал, нет способа прикрепить CCSprite к ограничению. Итак, мой вопрос: как бы я создал эту веревку, чтобы она реагировала так же, как шина, когда она движется? Вот мой код, который я сделал с ограничением: я использую cocos2d и chipmunk + spaceManger

//The "rope"
        cpVect a1 = cpv(0,30);      //Local coordinates of tire
        cpVect a2 = cpv(70,320);    //World coordinates (staticBody is at (0,0))

        //calculate the length of the rope
        float max = cpvdist(cpBodyLocal2World(upper->body, a1), a2);
        cpConstraint *rope = [game.spaceManager addSlideToBody:upper->body fromBody:game.spaceManager.staticBody toBodyAnchor:a1 fromBodyAnchor:a2 minLength:1 maxLength:max];

        cpConstraintNode *ropeNode = [cpConstraintNode nodeWithConstraint:rope];
        ropeNode.color = ccBLUE;

Ответы [ 2 ]

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

Если вы хотите использовать проект VRope на github для интеграции VRope и бурундука, я создал новую ветку, которая делает именно это. Вы найдете его по адресу:

Ветвь бурундука VRope

Пример использования:

Создание

pinPointJoint = 
    cpSlideJointNew(body,
                    body2,
                    body.anchorPoint,
                    body2.anchorPoint,
                    minimumLength,
                    maximumLength);

cpSpaceAddConstraint(space, pinPointJoint);

rope = [[VRope alloc] init:pinPointJoint batchNode:ropeBatchNode];

Обновление

[rope update:delta];
0 голосов
/ 27 апреля 2011

Эта запись представляет отличный способ рисовать веревки в Cocos2D с помощью интеграции Verlet.

Единственным недостатком является то, что в примере используется Box2D. Но код можно перенести на бурундук.

...