参考我的上一个问题:
Sprite moves two places after being paused and then unpaused
嗨,我有一个轻击手势,将我的游戏中的精灵向前移动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()
}
}
但我现在遇到的问题是,当我按下继续按钮恢复游戏时它仍会移动精灵,但这次它只移动一个空格,这是因为当我按下恢复按钮时它会打开水龙头,然后注册恢复按钮的水龙头以移动播放器。
我该如何解决这个问题?
这是我的暂停按钮:
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)
答案 0 :(得分:1)
将恢复功能修改为:
else if (node == resumeButton) {
resumeButton.removeFromParent()
restartButton.removeFromParent()
addChild(pauseButton)
tapIsPaused = false
self.runAction (SKAction.runBlock(self.resumeGame))
}
答案 1 :(得分:1)
您可以在暂停时删除手势,然后点击以下内容:
docker run -d -p 80:80 --name "app" localhost:5000/test/nginx-image:1
docker run -d -p 8888:8888 --name "app-" localhost:5000/test/nodejs-image:1
如果恢复游戏
再添加一次答案 2 :(得分:0)
非常简单和最简单的方法。无需添加或删除手势。
您可以通过启用或停用手势来执行此操作。
对于swift 2.3
TapUpRec.enabled = false //pause click
TapUpRec.enabled = true //resume click
适用于swift 3.0
TapUpRec.isEnabled = false //pause click
TapUpRec.isEnabled = true //resume click