父母是否有孩子的物理身体?

时间:2017-01-08 07:09:06

标签: swift sprite-kit swift3 skphysicsbody

我想知道如果我所做的就是父母的物理身体是什么:

let combinedBodies = SKSpriteNode()
addChild(combinedBodies)

//Create its children like this as an example:
let child = SKSpriteNode(color: UIColor.red, size: CGSize(width: 10, height: 20))
child.physicsBody = SKPhysicsBody(rectangleOf: child.size)
child.physicsBody?.categoryBitMask = collisionType.child.rawValue
combinedBodies.addChild(child)
allBodies.append(child.physicsBody?)

组合体的物理体是否是所有子体的物理组合的组合,或者它没有,我将不得不手动添加它?此外,父母的categoryBitMask会是什么?如果所有的孩子都有这个类别,或者我会手动给它自己的类别吗?

编辑:我用过这个:

collisionType.child.rawValue

我有一个列表,我存储所有孩子的物理实体,然后将该列表放入此命令(当新旧孩子被删除时,我会不断更新combinedBodies.physicsBody = SKPhysicsBody(bodies: ) )。 然而,现在我遇到的问题是,父母的物理实体不是儿童的原始物理实体(他们在屏幕上的不同位置),他们在屏幕的中间。有没有办法来解决这个问题?

我也改变了这个组合体的物理实体:

combinedBodies.physicsBody

请注意,此问题中的所有代码基本上都是我的代码,只是通过具有不同位置,旋转和颜色的迭代创建新子代。

使用示例代码进行编辑:我已经在我在此处添加的测试程序中重新创建了我的问题(combinedBodies.physicsBody = SKPhysicsBody(bodies: allBodies) combinedBodies.physicsBody?.isDynamic = true combinedBodies.physicsBody?.categoryBitMask = collisionType.combinedBodies.rawValue combinedBodies.physicsBody?.collisionBitMask = 0 combinedBodies.physicsBody?.contactTestBitMask = 0 combinedBodies.physicsBody?.affectedByGravity = false combinedBodies.physicsBody?.friction = 0.0 allLine的父级,{ {1}}在此代码中。)

ScreenLine

更新:现在通过将子节点的physicsBody集中到节点所在的位置(不是CGPoint.zero),但是当我将子节点放在屏幕上时,physicsBody位于正确的位置我把它添加到列表中。 我设置了这样的line和screen line physicsBody位置:

line

我目前正在努力解决的问题: 这使得allLine的physicsBodies居中。 然而,它们不会像它们应该的那样旋转。他们不保留他们的轮换。我该如何解决这个问题?

感谢您的回答和帮助:D

0 个答案:

没有答案