Cocos2d v3替代SpriteKit SKPhysicsBody bodyWithEdgeLoopF​​romPath

时间:2014-07-02 16:07:42

标签: ios iphone cocos2d-iphone sprite-kit

我试图将游戏从spriteKit迁移到Cocos2d v3。游戏是一个topDown赛车,它使用一些贝塞尔曲线来绘制轨道的轮廓。这条曲线在物理对象中用方法转换:

[SKPhysicsBody bodyWithEdgeLoopFromPath:CGPathRef]

我必须使用这种方法,我不能使用瓷砖地图层物理,因为当我的汽车与赛道的边界发生碰撞时,我想要一个平稳而真实的反应(我不想要#&# 34;平方地图的平方逻辑。系统工作,但在Iphone 4我有一些性能问题...似乎无法解决这个问题所以我决定将我的项目从SpriteKit迁移到Cocos2d V3尝试,如果我可以更好地管理游戏相机逻辑...无论如何第一我遇到的问题是在physicis体中转换轮廓形状的轨迹。我如何为Cocos2D翻译此代码?

UIBezierPath* bezier2Path = UIBezierPath.bezierPath;
[bezier2Path moveToPoint: CGPointMake(1621.33, 145.12)];
[bezier2Path addCurveToPoint: CGPointMake(1825.33, 350.46) controlPoint1: CGPointMake(1838, 145.12) controlPoint2: CGPointMake(1825.33, 350.46)];
[bezier2Path addCurveToPoint: CGPointMake(1825.33, 731.12) controlPoint1: CGPointMake(1825.33, 350.46) controlPoint2: CGPointMake(1825.33, 540.46)];
[bezier2Path addCurveToPoint: CGPointMake(1640.67, 928.46) controlPoint1: 
[bezier2Path closePath];

 RaceTrack.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromPath:[self bezier2Path.CGPath]];

1 个答案:

答案 0 :(得分:0)

在cocos2d中,bodyEdgeLoopF​​rom的替代品不存在。