| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import Foundation
- import SpriteKit
- class SnowScene: SKScene {
- let snowEmitterNode = SKEmitterNode(fileNamed: "snow.sks")
- override func didMove(to _: SKView) {
- guard let snowEmitterNode = snowEmitterNode else { return }
- snowEmitterNode.particleSize = CGSize(width: 50, height: 50)
- snowEmitterNode.particleLifetime = 2
- snowEmitterNode.particleLifetimeRange = 6
- addChild(snowEmitterNode)
- subscribe()
- }
- private func subscribe() {
- Foundation.NotificationCenter.default.addObserver(
- self,
- selector: #selector(didEnterBackground),
- name: UIApplication.didEnterBackgroundNotification,
- object: nil
- )
- Foundation.NotificationCenter.default.addObserver(
- self,
- selector: #selector(willEnterForeground),
- name: UIApplication.willEnterForegroundNotification,
- object: nil
- )
- }
- override func didChangeSize(_: CGSize) {
- guard let snowEmitterNode = snowEmitterNode else { return }
- snowEmitterNode.particlePosition = CGPoint(x: size.width / 2, y: size.height)
- snowEmitterNode.particlePositionRange = CGVector(dx: size.width, dy: size.height)
- }
- @objc private func didEnterBackground() {
- isPaused = true
- }
- @objc private func willEnterForeground() {
- isPaused = false
- }
- }
|