我喜欢,所以我的屏幕上的每一个节点0.2-5.0秒产卵:如何在不重叠的情况下产生多个节点?
override func didMoveToView(view: SKView) {
backgroundColor = UIColor.whiteColor()
runAction(SKAction.repeatActionForever(
SKAction.sequence([
SKAction.runBlock(blackDots),
SKAction.waitForDuration(1.0)])))
}
func random() -> CGFloat {
return CGFloat(Float(arc4random())/0xFFFFFFFF)
}
func random(min min: CGFloat, max: CGFloat) -> CGFloat {
return random() * (max - min) + min
}
func blackDots() {
let dot = SKSpriteNode(imageNamed: "[email protected]")
dot.size = CGSizeMake(75, 75)
dot.name = "dotted"
dot.position = CGPointMake(500 * random(min: 0, max: 1), 500 * random(min: 0, max: 1))
addChild(dot)
}
然而,当他们被催生,有的交叉,躺在彼此顶部?有没有办法来防止这种情况?提前致谢。
您是否尝试过使用碰撞检测?因此为每个节点打开物理,并关闭重力。 –
我其实从来没有想到这一点。谢谢!但是,这将如何阻止它们重叠? – IHeartAppsLLC
他们可能仍然重叠,但他们会(希望)彼此离开。只要给它一下,看看它是否有预期的效果。它足够快实施。我能想到的唯一方法就是在节点添加到场景之前检查节点是否存在于某个位置。我会以第二种方式做出答案。 –