小编tho*_*mas的帖子

PocotJoints在Cocos2d V3(Chipmunk)中具有摩擦力和极限

我尝试将我用SpriteKit开始的游戏转换为Cocos2d V3.我有一些物理问题.我创造了一个像玩人一样的人.肢体通过SpriteKit中的PinJoints连接.我通过Chipmunk中的PivotJoints重新创建了这个基本功能.这按预期工作.

但我需要在关节上添加一些摩擦力.现在它们只是尽可能快地旋转,更重要的是我需要限制关节的旋转角度.可以想象,大多数人不能自由地将肩膀旋转360度.;)

AFAIK我应该使用ChipmunkRotaryLimitJoint和ChipmunkGearJoint来实现这一点.我的问题是,我不能使它工作,因为我不知道如何正确地附加它们.这是我现在的代码:

- (CCPhysicsJoint *)createPinJointWithBodyA:(CCPhysicsBody *)bodyA
                                      bodyB:(CCPhysicsBody *)bodyB
                                     anchor:(CGPoint)anchor
                                   friction:(CGFloat)friction
                                 lowerLimit:(CGFloat)lowerLimit
                                 upperLimit:(CGFloat)upperLimit
{

    CCPhysicsJoint *pin = [CCPhysicsJoint 
        connectedPivotJointWithBodyA:bodyA
                               bodyB:bodyB
                             anchorA:anchor];

    ChipmunkRotaryLimitJoint *limitJoint = [ChipmunkRotaryLimitJoint 
        rotaryLimitJointWithBodyA:bodyA.body 
                            bodyB:bodyB.body
                              min:CC_DEGREES_TO_RADIANS(lowerLimit)
                              max:CC_DEGREES_TO_RADIANS(upperLimit)];

    ChipmunkGearJoint *gearJoint = [ChipmunkGearJoint 
        gearJointWithBodyA:bodyA.body
                     bodyB:bodyB.body
                     phase:0.5
                     ratio:0.5];

    return pin;
}
Run Code Online (Sandbox Code Playgroud)

(gearJoint调用中的值只是占位符!)

有没有人知道这应该如何工作?我通过谷歌发现了一些东西,但所有教程都假设我在其他环境中使用了花栗鼠.我是否必须为这些限制和齿轮接头创建我自己的CCPhysicJoint实现?

谢谢,并祝福,托马斯

objective-c chipmunk cocos2d-iphone ios

5
推荐指数
1
解决办法
1702
查看次数

标签 统计

chipmunk ×1

cocos2d-iphone ×1

ios ×1

objective-c ×1