我希望所有受重力影响的SKNode都转到我的SKScene视图上的水平线,而不是底部。像是一根重力极线的东西。有什么办法吗?
最佳答案
您是否尝试过使用SKFieldNode?
它具有与物理有关的各种模拟。例如,它可以创建
class func radialGravityField() -> SKFieldNode
执行以下操作:
创建一个将物理实体加速到该场节点的场节点。
编辑:
这是在Playground中完成的一个示例,该示例说明SKFieldNode如何与SKShapeNode一起工作
override func didMove(to view: SKView) {
let sampleNodeRadius: CGFloat = 15
let gravityNode = SKFieldNode.radialGravityField()
let sampleNode = SKShapeNode(circleOfRadius: sampleNodeRadius)
sampleNode.fillColor = .red
sampleNode.physicsBody = SKPhysicsBody(circleOfRadius: sampleNodeRadius)
gravityNode.minimumRadius = 1000
gravityNode.strength = 50
addChild(gravityNode)
addChild(sampleNode)
physicsWorld.gravity = CGVector(dx: 0, dy: 0)
sampleNode.position = CGPoint(x: -100, y: -100)
gravityNode.position = CGPoint(x: 0, y: 0)
}
关于ios - 如何在Sprite Kit场景中更改重力源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56108264/