Dav*_*man 5 uiviewcontroller uiview ios sprite-kit skemitternode
我只是想做一些对我来说似乎非常简单的事情,即将发射器放入视图的整个背景中...然后我希望视图能够进行纵向填充和缩放等等,允许发射器看起来不管我做了什么......
我不打算只缩放发射器.我希望对象保持正确的大小,但我希望发射器的区域改变...想象它像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)
}
}
Run Code Online (Sandbox Code Playgroud)
我需要澄清一点.对于雪,我希望粒子在进入场景之前实例化,然后通过场景落下,并且只有在离开场景后才会死亡,而不是在整个场景中随机出现,然后继续倒下......我希望雪能占据场景的整个范围.
你在寻找什么叫做particlePositionRange:
粒子位置的允许随机值范围.
您可以像这样更改它:
emitterNode.particlePositionRange = CGVector(dx: dx, dy: dy)
Run Code Online (Sandbox Code Playgroud)
dx应该是发射器的宽度和dy高度.这可能是一个场景的大小(请注意,默认情况下,如果没有另外指定,场景的大小为1024x768).
通过更改"位置范围"部分中的值,您可以使用"粒子编辑器"执行相同的操作:
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |