我想为我的SpriteKit Game创建一个迷宫,但是我在设置正确的物理体时遇到了问题 . 看看这个例子:
蓝色:CGPath
绿色:迷宫(CGPath线宽= 10)
红色:我要创建的物理体
我试图用CGPath和SKShapeNode绘制迷宫,但是如何为迷宫的内边界设置物理体?
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 38, 266);
CGPathAddLineToPoint(path, NULL, 37, 23);
CGPathAddLineToPoint(path, NULL, 127, 22);
CGPathAddLineToPoint(path, NULL, 127, 184);
CGPathAddLineToPoint(path, NULL, 273, 185);
CGPathAddLineToPoint(path, NULL, 273, 98);
CGPathAddLineToPoint(path, NULL, 274, 184);
CGPathAddLineToPoint(path, NULL, 127, 184);
CGPathAddLineToPoint(path, NULL, 127, 23);
CGPathAddLineToPoint(path, NULL, 364, 23);
CGPathAddLineToPoint(path, NULL, 364, 266);
CGPathCloseSubpath(path);
SKShapeNode *labyrinth = [SKShapeNode shapeNodeWithPath:path];
labyrinth = [SKColor greenColor];
labyrinth.lineWidth = 10;
[self addChild:labyrinth];
.
labyrinth.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromPath:path];
不起作用 . 我需要一个选项来包含物理体的路径线宽 .
有任何建议或其他选择来实现这样的迷宫吗?
3 回答
你有没有考虑过修建迷宫?
每个迷宫墙可以是矩形形状或精灵节点,然后您将使用bodyWithRectangleOfSize:为每个形状/精灵节点提供与其自身大小相同的物理主体 .
如果您不花费数小时翻译代码,只需使用SKShapeNode中的最终图像创建一个正文 .
您的节点必须在视图中,因为您将使用名为textureFromNode的SKView方法:如下所示 .
谢谢@primaryartemis!根据您的建议,我创建了以下代码:
有用 . 这是一个示例输出:(红色是物理体,蓝色是中点)