我正在用spritekit开发一个简单的游戏,其中屏幕上充满了带有物理物体的球。当玩家轻击球时,球会爆炸。我想在接触点施加一个角度脉冲,这将像现实世界中的爆炸一样将所有周围的球推开。我尝试了场,但它们并不是很好,因为所有物理场节点都是力而不是脉冲。我检查了所有的脉冲方法,但它们仅是对节点本身施加力。我也尝试过:
self.physicsBody?.applyAngularImpulse(100)
和
self.physicsBody?.applyImpulse(impulse: CGVector, at: CGPoint)
认为它将脉冲应用于场景中的所有子节点(所有球都是场景的子节点,但没有效果。
我以为这很简单,但我没主意。
感谢您的时间。欢呼声
这种方法不是现实世界中的爆炸模拟,但是可以帮助您实现一个想法。
我正在每个被触摸的节点上执行类似的操作:
node.run(SKAction.sequence([
SKAction.fadeOut(withDuration: 0.0),
SKAction.scale(to: 10, duration: 0.1),
SKAction.removeFromParent()
]))
您可以在此处获得此示例:https://github.com/Maetschl/SpriteKitExamples/blob/master/BoxWithBalls/BoxWithBalls/GameScene.swift