【发布时间】:2016-05-05 15:53:40
【问题描述】:
我正在按照教程来像 Periscope 一样漂浮心。
为了给出基本提示,我在下面发布代码
let heartHeight: CGFloat = 18.0
let heartsFile = "heart-bubbles.sks"
class HeartBubblesScene : SKScene {
var emitter: SKEmitterNode?
override func didMoveToView(view: SKView) {
scaleMode = .ResizeFill // make scene's size == view's size
//backgroundColor = UIColor.clearColor()
}
func beginBubbling() {
emitter = SKEmitterNode(fileNamed: heartsFile)
let x = floor(size.width / 2.0)
let y = heartHeight
emitter!.position = CGPointMake(x, y)
emitter!.name = "heart-bubbles"
emitter!.targetNode = self
emitter?.numParticlesToEmit = 1
addChild(emitter!)
emitter?.resetSimulation()
}
在我的 viewdidload 中,我有这样的代码来呈现场景
heartBubblesView.presentScene(heartBubblesScene)
其中 heartBubblesView 是一个 SKView,我通过 Outlet 制作的。
当我来回查看该视图控制器时会出现问题;突然,它崩溃了,并显示了以下逻辑:
SpriteKit`std::__1::__tree_iterator*, int> std::__1::__tree, std::__1::allocator >::find: 0x29fd0f4c : ldr r3, [r0, #4]! 0x29fd0f50 : cbz r3, 0x29fd0f82 ; 0x29fd0f52 : ldr.w r12, [r1] 0x29fd0f56 : 移动 r9, r0 -> 0x29fd0f58 : ldr r2, [r3, #0x10] 0x29fd0f5a : cmp r2, r12 0x29fd0f5c : bhs 0x29fd0f66 ; 0x29fd0f5e : ldr r3, [r3, #0x4] 0x29fd0f60 : cmp r3, #0x0 0x29fd0f62 : bne 0x29fd0f58 ; 0x29fd0f64 : b 0x29fd0f70 ; 0x29fd0f66 : ldr r2, [r3] 0x29fd0f68 : 移动 r9, r3 0x29fd0f6a : cmp r2, #0x0 0x29fd0f6c : 移动 r3, r2 0x29fd0f6e : bne 0x29fd0f58 ; 0x29fd0f70 : cmp r9, r0 0x29fd0f72 : beq 0x29fd0f82 ; 0x29fd0f74 : ldr.w r2, [r9, #0x10] 0x29fd0f78 : ldr r1, [r1] 0x29fd0f7a : cmp r1, r2 0x29fd0f7c :它lo 0x29fd0f7e : movlo r9, r0 0x29fd0f80 : b 0x29fd0f84 ; 0x29fd0f82 : 移动 r9, r0 0x29fd0f84 : 移动 r0, r9 0x29fd0f86 : bx lr
然后我尝试将 deinit 添加到上面的类中
deinit
{
emitter?.targetNode = nil
emitter!.removeAllChildren()
}
这也不行。
【问题讨论】:
-
您使用的标签不适用于这个问题。请查看What are tags, and how should I use them?
标签: ios sprite-kit skscene