我正在制作一个IOS应用程序,我想创建一个自定义的SKPhysicsBody。我使用编辑器创建.xml文件,其中包含我正在使用的点的坐标。有没有办法从这些点创建一个物理体?我正在使用Sprite工具包。
答案 0 :(得分:0)
我能够使用以下代码重新创建物理主体:
CGFloat offsetX = sprite.frame.size.width * sprite.anchorPoint.x;
CGFloat offsetY = sprite.frame.size.height * sprite.anchorPoint.y;
CGMutablePathRef spritePath = CGPathCreateMutable();
CGPathMoveToPoint(spritePath, NULL, 3 - offsetX, 1 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 1 - offsetX, 3 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 1 - offsetX, 6 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 6 - offsetX, 7 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 7 - offsetX, 10 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 19 - offsetX, 9 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 20 - offsetX, 7 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 14 - offsetX, 6 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 11 - offsetX, 5 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 9 - offsetX, 5 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 9 - offsetX, 2 - offsetY);
CGPathAddLineToPoint(spritePath, NULL, 8 - offsetX, 1 - offsetY);
sprite.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:spritePath];
我手动输入了坐标,它有效!但是,我认为物理体只限于12条线,所以我不得不改变物理体。