我想做一件对我来说非常简单的事情,就是将发射器作为整个视图的背景...然后我希望视图能够aspectFill和缩放等操作,让发射器看起来无论我怎么做都合适...
我不只是想缩放发射器,我希望对象保持正确的大小,但我想改变发射器的区域...可以将其视为Photoshop中的“画布大小”(不调整大小)选项..
例如,我会使用这种效果在整个场景中添加雪或雨,或者制作一个雪球精灵...
问题是,也许我只是没有找到正确的位置,但似乎在SKEmitterNode上的任何大小属性都是只读的...我做错了什么吗?
下面是一些代码,其中结果的发射器只是位于视图中间的一个小矩形。
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)
}
}
我需要进一步澄清。对于雪,我希望粒子在进入场景之前实例化,然后穿过场景,在离开场景之后才死亡,而不是在整个场景中随机出现,然后继续落下...我希望雪占据整个场景的范围。
particleZPosition
属性并没有被弃用。我指的是它,而不是实际上已经被弃用的particleZPositionRange
。 - Whirlwindself.frame.maxY
),并将发射器位置范围更改为类似dx = scene.size.width
和dy = 10
的值。 - Whirlwind