Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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(body:)从多个实体创建一个物理实体_Ios_Swift_Sprite Kit_Skphysicsbody - Fatal编程技术网

Ios 使用SKPhysicsBody(body:)从多个实体创建一个物理实体

Ios 使用SKPhysicsBody(body:)从多个实体创建一个物理实体,ios,swift,sprite-kit,skphysicsbody,Ios,Swift,Sprite Kit,Skphysicsbody,我试图使用SKPhysicsBody(body:)init从其他几个实体创建一个物理实体 我在整个场景中都有一些节点,这些节点上附着有物理实体,我想将它们合并到一个物理实体中。我正在枚举场景中的节点,并挑选出我想要瞄准的节点。我在创建这些节点时创建物理体,如下所示: node.physicsBody = SKPhysicsBody(rectangleOf: node.size) node.physicsBody?.isDynamic = false self.allNodePhysicsBod

我试图使用SKPhysicsBody(body:)init从其他几个实体创建一个物理实体

我在整个场景中都有一些节点,这些节点上附着有物理实体,我想将它们合并到一个物理实体中。我正在枚举场景中的节点,并挑选出我想要瞄准的节点。我在创建这些节点时创建物理体,如下所示:

node.physicsBody = SKPhysicsBody(rectangleOf: node.size)
node.physicsBody?.isDynamic = false
self.allNodePhysicsBodies.append(node.physicsBody)
let conglomeratePhysicsBody = SKPhysicsBody(bodies: self.allNodePhysicsBodies)
然后我将物理体添加到SKPhysicsBody数组中,如下所示:

node.physicsBody = SKPhysicsBody(rectangleOf: node.size)
node.physicsBody?.isDynamic = false
self.allNodePhysicsBodies.append(node.physicsBody)
let conglomeratePhysicsBody = SKPhysicsBody(bodies: self.allNodePhysicsBodies)
然后我创建了这样的联合物理体:

node.physicsBody = SKPhysicsBody(rectangleOf: node.size)
node.physicsBody?.isDynamic = false
self.allNodePhysicsBodies.append(node.physicsBody)
let conglomeratePhysicsBody = SKPhysicsBody(bodies: self.allNodePhysicsBodies)
我尝试了几种不同的方法将物理体添加到场景中:创建一个SKNode或SKSpriteNode并将物理体添加到其中,然后将其添加到场景中,或者将场景的物理体设置为physicsbody。所有这些方法最终都会使物理实体在场景底部对齐(而不是像应该的那样围绕场景放置)。当我将聚合PhysicsBody打印到控制台时,我会收到以下消息:
type:representedObject:[(null)]。
我是否缺少阻止物理体出现在节点所在位置的内容


我应该补充一点,我可以通过使用
skView.showsPhysics=true来查看物理体。

@Knight0fDragon,我是从您在另一篇帖子中的评论开始使用它的。你以前用过这些吗?是不是他说身体之间的缝隙会卡住什么东西,而制造一个合并的身体会防止缝隙中的这种粘性?如果是这样的话,我认为问题可能在于,机构的合并必须是连续的。而且,利润最惊人的离岸公司(商业史上最大的公司)不能雇佣几个程序员来演示他们创造的一切,这是非常令人恼火的,以及最新的文档。大多数的SpriteKit演示都存在于他们的文档中,但仍然只存在于Objective-C中。@Claassenaps,幸好我看到了这个。你的身体都是相对于每个节点的吗?您需要确保使实体相对于父节点,而不是单个节点(因此,如果节点位于10,10,则节点的实体为0,0。您需要将实体移动到10,10)@KnightOfDragon,这对节点的定位起到了作用!现在我被节点的旋转所困扰。它们都被水平卡住了。有些应该是45度角或90度角。我无法将zPosition指定给物理体,并且物理体表示的节点在创建物理体时(也在我将其添加到数组时)会旋转。对于为什么会发生这种情况,你有什么建议吗?