我正在用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?任何帮助表示赞赏!谢谢
我将在不进行测试的情况下编写此代码,但是它应该可以正常工作:在您致电self.removeFromParent()
添加行之前parent = self.parent
;然后,使用parent.addChild(div)
代替self.addChild(div)
。
做到了吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句