我从sprite-kit框架开始,我想知道是否可以将一个正方形分成三角形或其他小多边形。
我知道如何检测子弹和基本多边形之间的碰撞,但是在Sprite-kit中定义了将多边形划分或拆分成小多边形的任何方法?
提前致谢。
答案 0 :(得分:2)
我不相信有。我相信这是关节的目的。您可以创建单个实体,然后将它们与固定关节连接在一起。连接的身体作为一体,直到你决定打破一些或所有的关节。
此页面包含有关创建关节的详细信息: https://developer.apple.com/library/IOS/documentation/SpriteKit/Reference/SKPhysicsJoint_Ref/Reference/Reference.html
答案 1 :(得分:1)
您可能想要使用this工具之类的东西。
它允许您使用自定义形状定义physicsBody
,例如:
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"img"];
CGFloat offsetX = sprite.size.width * self.anchorPoint.x;
CGFloat offsetY = sprite.size.height * self.anchorPoint.y;
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 24 - offsetX, 124 - offsetY);
CGPathAddLineToPoint(path, NULL, 24 - offsetX, 47 - offsetY);
CGPathAddLineToPoint(path, NULL, 339 - offsetX, 1 - offsetY);
CGPathAddLineToPoint(path, NULL, 401 - offsetX, 3 - offsetY);
CGPathAddLineToPoint(path, NULL, 452 - offsetX, 52 - offsetY);
CGPathAddLineToPoint(path, NULL, 411 - offsetX, 78 - offsetY);
CGPathAddLineToPoint(path, NULL, 295 - offsetX, 78 - offsetY);
CGPathAddLineToPoint(path, NULL, 268 - offsetX, 93 - offsetY);
CGPathAddLineToPoint(path, NULL, 95 - offsetX, 78 - offsetY);
CGPathAddLineToPoint(path, NULL, 62 - offsetX, 124 - offsetY);
CGPathCloseSubpath(path);
sprite.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:path];