IOS从.xml或.pes文件创建SKPhysicsBody

时间:2014-05-10 18:52:20

标签: ios sprite-kit

我正在制作一个IOS应用程序,我想创建一个自定义的SKPhysicsBody。我使用编辑器创建.xml文件,其中包含我正在使用的点的坐标。有没有办法从这些点创建一个物理体?我正在使用Sprite工具包。

1 个答案:

答案 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条线,所以我不得不改变物理体。