Cocos2d iphone 创建ccsprite并将其用作绳索

Cocos2d iphone 创建ccsprite并将其用作绳索,cocos2d-iphone,chipmunk,Cocos2d Iphone,Chipmunk,我有一个轮胎在我的屏幕上,我想有一条绳子连接到轮胎的顶部和屏幕的顶部。我已经将物理融入了我与chipmunk+spaceManager的游戏中,所以我需要了解绳子对物理的反应。我只需要它在被击中时能随着轮胎前后移动。我使用了一个cpConstraintNode来绘制一条线,并将其作为一条绳子使用到这一点,但是我所看到和研究的一切,都无法将CCSprite附加到约束。所以我的问题是,我该如何制作这根绳子,让它在移动时的反应与轮胎相同?下面是我用约束完成的代码:我正在使用cocos2d和chipmu

我有一个轮胎在我的屏幕上,我想有一条绳子连接到轮胎的顶部和屏幕的顶部。我已经将物理融入了我与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集成在Cocos2D中绘制绳索的好方法


唯一的缺点是该示例使用Box2D。但是代码可以移植到chipmunk。

如果你想使用github上的VRope项目来集成VRope和chipmunk,我已经创建了一个新的分支来实现这一点。您可以在以下网址找到:

使用它的一个例子是:

创作

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

cpSpaceAddConstraint(space, pinPointJoint);

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

[rope update:delta];