¿Cómo cambiar el tamaño de un SKEmitterNode?

Solo quería hacer algo que a mí me parece realmente simple, que es convertir a un emisor en todo el background de una vista … entonces quisiera que la vista sea capaz de aspectar, escalar, etc., permitiendo que el emisor se vea Lo que sea que hice …

No estoy buscando simplemente escalar el emisor. Quiero que los objects sigan siendo del tamaño correcto, pero quiero que cambie el área del emisor … piense en él como la opción "tamaño del canvas" (sin cambiar el tamaño) en Photoshop ..

Usaría este efecto, por ejemplo, para agregar nieve o lluvia a una escena completa, o hacer un sprite de globo de nieve …

La cosa es que tal vez no estoy buscando en el lugar correcto, pero parece que las properties de cualquier tamaño en un SKEmitterNode son solo leídas … ¿qué estoy haciendo mal?

aquí hay un código, donde el emisor resultante es solo un pequeño rectángulo en el medio de la vista.

override func viewDidLoad() { super.viewDidLoad() if let scene = GameScene(fileNamed:"GameScene") { // Configure the view. let skView = self.view as! SKView skView.showsFPS = true skView.showsNodeCount = true if let emitter = SKEmitterNode(fileNamed: "Bokeh") { emitter.position = view.center scene.addChild(emitter) } /* Sprite Kit applies additional optimizations to improve rendering performance */ skView.ignoresSiblingOrder = true /* Set the scale mode to scale to fit the window */ scene.scaleMode = .AspectFill skView.presentScene(scene) } } 

Necesito aclarar un poco más. Para la nieve, querría que las partículas se instancien antes de que entren en la escena, y luego caigan en la escena, y solo mueran después de que hayan salido de la escena, en lugar de aparecer random en la escena, y luego continúen cayendo … Quisiera que la nieve ocupe todos los límites de la escena.

Lo que está buscando se llama particlePositionRange :

El range de valores aleatorios permitidos para la position de una partícula.

Puedes cambiarlo de esta manera:

  emitterNode.particlePositionRange = CGVector(dx: dx, dy: dy) 

dx debería ser el ancho de su emisor y la altura. Entonces, ese podría ser el tamaño de una escena (tenga en count que el tamaño pnetworkingeterminado de la escena es 1024×768 si no se especifica de forma diferente).

Lo mismo que puede hacer con el Editor de partículas al cambiar los valores en la sección Rango de position:

rango de posición