我正在Swift上开发一款小游戏,并且我一直在努力。在这个自定义类中,我使用了touchesBegan
方法,并且在此方法中我想创建一个SkNode。这是我的代码:在哪里添加孩子?
class TouchableSpriteNode : SKSpriteNode
{
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.removeFromParent()
let delay = Int(arc4random_uniform(UInt32(200)))*Int(NSEC_PER_SEC)/100
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(time, dispatch_get_main_queue()) {
let random2 = arc4random_uniform(UInt32(self.frame.size.width))
let random3 = arc4random_uniform(UInt32(self.frame.size.height))
div.position = CGPoint(x: Int(random2), y: Int(random3))
self.addChild(div)
}
}
}
的问题是,我不能让它显示在屏幕上,因为我得到它说,你不能说孩子,因为这是他自己的父(这是复杂的错误),我想知道的事情是我怎么能说增加孩子到现场,而不是这个skspritenode? 任何帮助表示赞赏!谢谢
你可以发布“复杂”的错误? :) –
错误并不复杂,为什么这个类是SKSpriteNode的父类是复杂的.. –
你究竟在哪里声明'div'?如果你想添加'div'的多个实例,声明应该在你的函数中。否则,它会尝试重新添加已添加的节点(而不是添加节点的新实例),从而导致错误。这是怎么回事? –