如何在视图中启动 sparkEmmiter(创建自定义 smoke.sks 文件)? Swift 5
How to launch sparkEmmiter (created custom smoke.sks file) in the view? Swift 5
我已经创建了 SpriteKit 粒子发射器 文件 smoke.sks
。
我想在 UIView
中制作此动画 运行,但是,它没有 addChild
方法,我仍然有一些错误...
我试过这个解决方案:
func addSmoke() {
//spark particle effect
let sparkEmmitterPath: String = Bundle.main.path(forResource: "smoke", ofType: "sks")!
let sparkEmmiter = NSKeyedUnarchiver.unarchiveObject(withFile: sparkEmmitterPath as String) as! SKEmitterNode
sparkEmmiter.position = CGPoint(x: self.backgroundMaskView.frame.size.width, y: self.backgroundMaskView.frame.size.height/2)
sparkEmmiter.name = "smoke"
sparkEmmiter.zPosition = 1
sparkEmmiter.targetNode = self
self.view.addChild(sparkEmmiter)
}
2 个错误:
sparkEmmiter.targetNode = self
无法将类型 'ViewController' 的值分配给类型 'SKNode?'
self.addChild(sparkEmmiter)
无法将类型 'SKEmitterNode' 的值转换为预期的参数类型 'UIViewController'
我是否也应该创建 SpriteKit 视图 (SKView
)?
我找到的唯一解决方案。
我们需要将 UIView
class 更改为 SCNView
并为粒子创建 scnp
文件。
@IBOutlet weak var particles: SCNView!
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene()
let particlesNode = SCNNode()
let particleSystem = SCNParticleSystem(named: "smoke.scnp", inDirectory: "")
particlesNode.addParticleSystem(particleSystem!)
scene.rootNode.addChildNode(particlesNode)
particles.backgroundColor = .clear
particles.scene = scene
}
但是 ... Apple确实删除了创建scnp 个文件。
第二步是更改文件的类型。创建SpriteKit Particle File
(不要配置这个创建的文件,因为当你改变类型时你必须重新配置,它会重置)
现在,更改 Identity
类型。
我已经创建了 SpriteKit 粒子发射器 文件 smoke.sks
。
UIView
中制作此动画 运行,但是,它没有 addChild
方法,我仍然有一些错误...
我试过这个解决方案:
func addSmoke() {
//spark particle effect
let sparkEmmitterPath: String = Bundle.main.path(forResource: "smoke", ofType: "sks")!
let sparkEmmiter = NSKeyedUnarchiver.unarchiveObject(withFile: sparkEmmitterPath as String) as! SKEmitterNode
sparkEmmiter.position = CGPoint(x: self.backgroundMaskView.frame.size.width, y: self.backgroundMaskView.frame.size.height/2)
sparkEmmiter.name = "smoke"
sparkEmmiter.zPosition = 1
sparkEmmiter.targetNode = self
self.view.addChild(sparkEmmiter)
}
2 个错误:
sparkEmmiter.targetNode = self
无法将类型 'ViewController' 的值分配给类型 'SKNode?'
self.addChild(sparkEmmiter)
无法将类型 'SKEmitterNode' 的值转换为预期的参数类型 'UIViewController'
我是否也应该创建 SpriteKit 视图 (SKView
)?
我找到的唯一解决方案。
我们需要将 UIView
class 更改为 SCNView
并为粒子创建 scnp
文件。
@IBOutlet weak var particles: SCNView!
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene()
let particlesNode = SCNNode()
let particleSystem = SCNParticleSystem(named: "smoke.scnp", inDirectory: "")
particlesNode.addParticleSystem(particleSystem!)
scene.rootNode.addChildNode(particlesNode)
particles.backgroundColor = .clear
particles.scene = scene
}
但是 ... Apple确实删除了创建scnp 个文件。
第二步是更改文件的类型。创建SpriteKit Particle File
(不要配置这个创建的文件,因为当你改变类型时你必须重新配置,它会重置)
现在,更改 Identity
类型。