【发布时间】:2015-10-21 05:43:15
【问题描述】:
我正在 iOS9 Beta 4 中测试我的应用程序,发现许多过去在 iOS8 中运行的代码不再按预期运行。另一个例子是 SpriteKit 的 SKEmitterNode "particleAction" 属性。以下代码在 iOS8 中有效,但在 iOS9 中无效:
// create the particle movement action
SKAction *move = [SKAction moveByX:100 y:100 duration:5]; // also, I've tested several other SKActions, such as scaleBy, fade, rotate, to no effect here
// create a target node and add to the SKScene
SKNode *targetNode = [SKNode node];
targetNode.position = origin;
[mySKSceneNode addChild:targetNode];
// add an emitter node that has a target and an SKAction
SKEmitterNode *flameTrail = [NSKeyedUnarchiver unarchiveObjectWithFile:[[NSBundle mainBundle]pathForResource:@"FlameAttack" ofType:@"sks"]];
flameTrail.position = origin;
flameTrail.particleAction = move; // TODO iOS9 compatibility issues!
flameTrail.targetNode = targetNode;
[mySKSceneNode addChild:flameTrail];
在 iOS8 上,上面的代码会生成一个看起来像火花飞舞的 SKEmitterNode。在 iOS9 上,SKEmitterNode 完全不可见(根本不会出现在 SKScene 中)。如果我注释掉以下行:
flameTrail.particleAction = move; // TODO iOS9 compatibility issues!
然后我会在场景中看到 SKEmitterNode,但不会看到与粒子相关的任何运动。
我还用其他几个 SKAction 对此进行了测试,但没有发现结果有任何变化。我向 Apple 提交了一个错误;与此同时,任何人都可以确认/否认这个问题或在代码中看到问题吗?
【问题讨论】:
-
当设置
particleAction属性时,SKEmitterNode也会在 OS X El Capitan (GM) 上消失。 -
其实发射器节点并没有消失,“只是”粒子...
-
该错误仍然存在于 El Capitan 的公开版本中...
标签: ios iphone ipad sprite-kit ios9