【发布时间】:2014-03-14 21:37:24
【问题描述】:
我为我的一个物理实体编写了以下代码:
CGFloat offsetX = ship.frame.size.width * ship.anchorPoint.x;
CGFloat offsetY = ship.frame.size.height * ship.anchorPoint.y;
CGMutablePathRef path2 = CGPathCreateMutable();
CGPathMoveToPoint(path2, NULL, 10 - offsetX, 1 - offsetY);
CGPathAddLineToPoint(path2, NULL, 8 - offsetX, 12 - offsetY);
CGPathAddLineToPoint(path2, NULL, 10 - offsetX, 14 - offsetY);
CGPathAddLineToPoint(path2, NULL, 10 - offsetX, 37 - offsetY);
CGPathAddLineToPoint(path2, NULL, 5 - offsetX, 44 - offsetY);
CGPathAddLineToPoint(path2, NULL, 0 - offsetX, 36 - offsetY);
CGPathAddLineToPoint(path2, NULL, 0 - offsetX, 16 - offsetY);
CGPathAddLineToPoint(path2, NULL, 2 - offsetX, 11 - offsetY);
CGPathAddLineToPoint(path2, NULL, 0 - offsetX, 1 - offsetY);
CGPathAddLineToPoint(path2, NULL, 0 - offsetX, 0 - offsetY);
CGPathAddLineToPoint(path2, NULL, 10 - offsetX, 0 - offsetY);
CGPathCloseSubpath(path2);
ship.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path2];
这对我来说似乎很好,但每当我运行它时,我都会收到一条错误消息:“线程 1:信号 SIGABRT”。 有没有人看到我的代码有什么问题或者知道为什么这不起作用? 如果您需要我指定任何内容,请直接询问,我会很乐意。
【问题讨论】:
-
了解如何使用 UIBezierPath。
-
多边形必须是凸的,并且点按逆时针顺序