我设法用随机CGPoints数组绘制一条线。
-(void)drawLine
{
SKShapeNode *mainLine = [SKShapeNode node];
CGMutablePathRef pathToDraw = CGPathCreateMutable();
CGPathMoveToPoint(pathToDraw, NULL, 0, 0);
for(int i;i<pointsInMyView.count;i++)
{
CGPoint myPoint = [pointsInMyView[i] CGPointValue];
CGPathAddLineToPoint(pathToDraw, NULL, myPoint.x, myPoint.y);
mainLine.path = pathToDraw;
}
[mainLine setLineWidth:40];
[mainLine setStrokeColor:[SKColor whiteColor]];
mainLine.name = @"mainLine";
[self addChild:mainLine];
}
如您所见,我正在绘制SKShapeNode。我的目标是检查我的SKSpriteNode与我的线路的碰撞。但是,当然,这个形状节点会生成一个包含我所有行的所有点的帧,在这种情况下,我的ShapeNode就在我的视野中。我的SpriteNode始终检测到与此ShapeNode的冲突。 我想我应该绘制多个不同的ShapeNodes,因此每个节点都有自己的帧。但如果我这样做,我的线路没有连接。 是否有一些解决方案可以按节点绘制这个节点,并且仍然可以得到很好的线。
答案 0 :(得分:3)
不幸的是,SpriteKit中的节点不能是凹的(http://mathworld.wolfram.com/ConcavePolygon.html),而是相互交叉的线。
您必须为相邻点之间的每条线创建单独的节点,然后可能将它们连接在一起。你可以通过以下方式做到这一点:
SKPhysicsJointFixed
。