Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将SKPhysicsBody(纹理:大小:)居中于SKSpriteNode锚点以外的点_Ios_Swift_Sprite Kit_Skspritenode_Skphysicsbody - Fatal编程技术网

Ios 如何将SKPhysicsBody(纹理:大小:)居中于SKSpriteNode锚点以外的点

Ios 如何将SKPhysicsBody(纹理:大小:)居中于SKSpriteNode锚点以外的点,ios,swift,sprite-kit,skspritenode,skphysicsbody,Ios,Swift,Sprite Kit,Skspritenode,Skphysicsbody,SKSpriteNode锚定点设置为(0.5,0) 如何使用SKPhysicsBody(纹理:大小:)创建以(0.5,0.5)为中心的物理实体,而不更改(0.5,0)定位点。您可以使用或 ,例如: let sprite = SKSpriteNode(color: SKColor.whiteColor(), size: CGSize(width: 100.0, height: 100.0)) sprite.position = CGPoint(x: CGRectGetMidX(frame),

SKSpriteNode锚定点设置为(0.5,0)

如何使用
SKPhysicsBody(纹理:大小:)
创建以(0.5,0.5)为中心的物理实体,而不更改(0.5,0)定位点。

您可以使用或 ,例如:

 let sprite = SKSpriteNode(color: SKColor.whiteColor(), size: CGSize(width: 100.0, height: 100.0))
 sprite.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame))
 sprite.anchorPoint = CGPoint(x: 0.5, y: 0.0)

 sprite.physicsBody = SKPhysicsBody(rectangleOfSize: sprite.size, center: CGPoint(x: 0, y: sprite.size.height/2.0))
 sprite.physicsBody?.affectedByGravity = false // just added for easier debugging
 addChild(sprite)

“中心”参数表示所属节点坐标系中方形/圆形的原点

我需要使用SKPhysicsBody(纹理:大小:)来获得具有纹理形状但大小不同的实体。@crvo84啊,好吧……那么,更改节点的锚定点的原因是什么?你不能把它保留为(0.5,0.5)并相应地改变节点的位置吗?这是一篇关于anchorPoint和physicsBody的有用文章。在场景中,我需要围绕(0.5,0)处的锚点旋转精灵。如果有一种方法可以改变身体中心,这样我就不需要相应地修改我的所有代码了,那就太好了。谢谢