创建CCSprite并将其用作绳索

| 屏幕上有轮胎,我想将一根绳子连接到轮胎的顶部和屏幕的顶部。我已经使用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;
    
已邀请:
这篇文章提出了一种使用Verlet Integration在Cocos2D中绘制绳索的好方法。 唯一的缺点是该示例使用Box2D。但是代码可以移植到花栗鼠。     
如果您想使用github上的VRope项目来集成VRope和Chipmunk,我已经创建了一个新的分支来完成此任务。您可以在以下位置找到它: VRope花栗鼠分支 一个使用它的例子是: 创建
pinPointJoint = 
    cpSlideJointNew(body,
                    body2,
                    body.anchorPoint,
                    body2.anchorPoint,
                    minimumLength,
                    maximumLength);

cpSpaceAddConstraint(space, pinPointJoint);

rope = [[VRope alloc] init:pinPointJoint batchNode:ropeBatchNode];
更新中
[rope update:delta];
    

要回复问题请先登录注册