节点

时间:2015-08-21 15:58:08

标签: swift sprite-kit location skspritenode rect

我正在尝试unhide此节点,以便它显示在rect位置,但之后又以某种方式再次创建该节点hidden,因此当它取消隐藏时,它位于不同的位置在rect内。但是我试图以随机的间隔(但不到5秒)向它unhides添加一个随机计时器?

let x12 = rect4.origin.x + CGFloat(arc4random()) % rect4.size.width
let y12 = rect4.origin.y + CGFloat(arc4random()) % rect4.size.height
    let randomPoint12 = CGPointMake(x12, y12)
    self.yellowcircle3.position = randomPoint12
    self.addChild(yellowcircle3)


    yellowcircle3.hidden = true

1 个答案:

答案 0 :(得分:0)

听起来你想制作一个NSTimer并使用arc4random获取时间间隔。

您需要做的第一件事是通过添加代码来声明NSTimer和随机数:

var myTimer = NSTimer()
var secondsPassed : Int = 0
var randomTimeInterval = arc4Random % 4 + 1

(4 + 1将返回1到5之间的值)

接下来,您需要一个函数来在您想要移动节点时进行调用。

 func moveNode(){
            myTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("timerRan:"), userInfo: nil, repeats: true)

    }

拨打moveNode()后,您的计时器将开始运行。但现在我们需要计时器的功能,或它Selector,以便它可以正常运行。

func timerRan(sender: NSTimer!){
     secondsPassed++
     if secondsPassed == randomTimeInterval (
        //unhide your rect and reset the timer
     )
}

希望这会有所帮助:)