【发布时间】:2014-08-23 12:46:27
【问题描述】:
我正在尝试将游戏从 spriteKit 迁移到 Cocos2d v3。游戏是一个自上而下的赛车,使用一些贝塞尔曲线来绘制赛道的轮廓。这些曲线通过以下方法转换为物理对象:
[SKPhysicsBody bodyWithEdgeLoopFromPath:CGPathRef]
我必须使用这种方法,并且我不能使用平铺地图图层物理,因为我想要在我的汽车与赛道边界发生碰撞时做出平滑而逼真的反应(我不想要一个“平方”逻辑平铺地图。)。该系统可以工作,但在 Iphone 4 中我遇到了一些性能问题......似乎无法解决这个问题,所以我决定将我的项目从 SpriteKit 迁移到 Cocos2d V3 以尝试我是否可以更好地管理游戏相机逻辑......无论如何,第一个我遇到的问题是在物理体内转换我的轮廓形状的轨迹。如何为 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]];
【问题讨论】:
标签: ios iphone cocos2d-iphone sprite-kit