迅速的早期功能退出迅速没有后卫

时间:2016-02-02 21:00:49

标签: ios iphone swift function

我正在寻找一种在不使用后卫的情况下退出功能的方法。经过广泛的搜索,我找不到退出函数的方法,并在按下按钮的同时调用下一个函数。 该按钮使用选择器调用重复:

@IBAction func BottomLeft(sender: AnyObject) {
    NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(0.01), target: self, selector: "bottomLeftMovement", userInfo: nil, repeats: true)
}

这是按下代码按钮的时候,球将跟随此动作:

func bottomLeftMovement() {
    Ballx = Ballx - 0.6125
    Bally = Bally + 1.2
    self.Ball.center.x = Ballx
    self.Ball.center.y = Bally
}

我希望这样做,以便当按下另一个按钮时,将退出此功能并调用相应的功能。

我不能硬编入第一个函数,因为它是一个可互换的东西,而不是函数链。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您的代码正在做的是每次点击按钮时创建一个新的计时器。这不是正确的方法。我建议你做一些关于游戏开发的研究/阅读。 但基本上,如果你要用这种方式做事(这也不是一件好事(tm))。您需要在属性中跟踪计时器,并使其无效(以阻止它)。了解计时器(https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/

因此,简而言之:
  - 不要这样做   - 如果必须,请在物业中跟踪您的计时器   - 使计时器无效()并根据需要开始新计时器

注意:跟踪并使计时器无效,如下所示: (注意我是从记忆中做到这一点,没有经过测试,但有些内容......)

class someClass {
  var myTimer = NSTimer?

  func myFunction() {
     if let timer = myTimer {
         timer.invalidate()
     }

     timer = NSTimer(...