ios - 取消点击手势识别器

标签 ios swift sprite-kit uitapgesturerecognizer

关于我的最后一个问题:

Sprite moves two places after being paused and then unpaused

你好,我有一个轻击手势,它在我的游戏中将 Sprite 向前移动 1 个空间,当我按下暂停按钮时,它会继续注册轻击手势,然后当我恢复游戏时,它会移动两个空间。

所以我设法定义了一个 bool 变量来检测(使用 if 语句)我是否暂停了点击手势

var tapIsPaused: Bool = false



func tapUp(){

    if(tapIsPaused == true) {

        //do nothing


    } else if (tapIsPaused == false) {

        let amountToMove:CGFloat = levelUnitHeight

        let move:SKAction = SKAction.moveByX(0, y: amountToMove, duration: 0.1)


        menubutton.hidden = true
        settingsButton.hidden = true
        highscoreLabel.hidden = true
        pauseButton.hidden = false

        thePlayer.runAction(move)

        clearNodes()

    }

}

但我现在遇到的问题是,当我按下恢复按钮继续游戏时,它仍然会移动 Sprite ,但这次它只向上移动一个空间,这是因为当我按下恢复按钮时,它会打开水龙头然后在其上注册恢复按钮的点击以向上移动播放器。

我该如何解决这个问题?

这是我的暂停按钮:

 else if (node == pauseButton) {

        tapIsPaused = true
        pauseButton.removeFromParent()
        addChild(resumeButton)
        addChild(restartButton)
        self.runAction (SKAction.runBlock(self.pauseGame))

    }

这是我的简历按钮:

 else if (node == resumeButton) {


        resumeButton.removeFromParent()
        restartButton.removeFromParent()
        addChild(pauseButton)
        self.runAction (SKAction.runBlock(self.resumeGame))
        tapIsPaused = false

    }

这是我的点击手势处理程序代码:

 let TapUpRec = UITapGestureRecognizer()




 TapUpRec.addTarget(self, action: "tapUp")
    self.view!.addGestureRecognizer(TapUpRec)

最佳答案

您可以使用以下方法删除暂停点击时的手势:

self.view.removeGestureRecognizer(YOUR_GESTURE_RECOGNISER)

如果恢复游戏再添加

关于ios - 取消点击手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34868333/

相关文章:

ios - 在 Cocoa 中组合多个字符串

ios - 用 NSURLSession 替换 NSURLConnection

ios - Collection View in TableView Show item [VGS.CustumCell collectionView :numberOfItemsInSection:]: unrecognized selector sent to instance

swift - 来自 CIImage 的 PNG/JPEG 表示总是返回 nil

ios - 有没有强制刷卡之类的东西?

ios - 如何让textureFromNode生成视网膜显示的纹理?

ios - 显示数组值的每周本地通知 - Swift

swift - 在另一个类中使用GameScene

ios - 我的应用程序在后台使用了 70Mb,如何释放内存?

ios - 如何在iOS中实现弹出对话框?