【发布时间】:2014-12-10 18:59:54
【问题描述】:
在 swift 中,下面的代码以一定的速率(每秒 2 次)从 didMoveToView() 调用。每次调用此函数时,屏幕上都会出现一个新的 circlenode。但是,当它尝试添加第二个时,它不会继续添加它们,而是会引发错误:尝试添加已经有父级的sknode。我发现你不能在同一个视图上创建一个重复的节点。考虑到这一点,我得出的结论是,我需要创建一个 SKShapeNodes 数组,因此每当调用该函数时,它都会从数组中取出一个并将其添加到视图中。在我的例子中,当一个节点到达底部(y = -20)时,它需要删除该节点,并使其再次可用。
所以,我的问题是:如何创建一个SKShapeNodes 数组,所以当我下面的函数被调用时,它将采用一个新节点并将其显示到视图中?此外,当节点退出视图时,需要使节点再次可用。
let circlenode = SKShapeNode(circleOfRadius: 25) //GLOBAL
func thecircle() {
circlenode.strokeColor = UIColor.whiteColor()
circlenode.fillColor = UIColor.redColor()
let initialx = CGFloat(20)
let initialy = CGFloat(1015)
let initialposition = CGPoint(x: initialx, y: initialy)
circlenode.position = initialposition
self.addChild(circlenode)
let action1 = SKAction.moveTo(CGPoint(x: initialx, y: -20), duration: NSTimeInterval(5))
let action2 = SKAction.removeFromParent()
circlenode.runAction(SKAction.sequence([action1, action2]))
}
【问题讨论】:
标签: swift sprite-kit