SKaction阻止了touchesBegan事件

时间:2015-08-19 20:31:23

标签: ios multithreading swift skaction

我有一个不同方格的网格。当用户点击正方形时,这个正方形会翻转。但在此次翻转期间,touchesBegan的事件无效。

此代码在点击方块后执行:

 func flipTile(node : RectSprite){
    let flip = SKAction.scaleXTo(-1, duration: 0.5)
    let flip2 = SKAction.scaleXTo(-1, duration: 0.2)

    node.setScale(1.0)
    var key : String = Array(CircleColor.colors.keys.array)[10]
    var changeColor = SKAction.runBlock( { node.texture = SKTexture(imageNamed:"white")})
    var removeCombinaison = SKAction.runBlock( {
        self.combination.last?.removeFromParent()
        self.combination.removeLast()
        self.updateGrid()

    })

    var action = SKAction.sequence([flip, changeColor])
    var action2 = SKAction.sequence([flip2, removeCombinaison] )

    node.imageName = "white"
    node.name = "square"
    node.runAction(action)
    self.combination.last?.runAction(action2)
}

但如果我在下一个广场快速点击,则事件触摸不起作用。也许我需要在新线程中执行此代码。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用(我认为这甚至可以在翻转动画中使用)来检查触摸位置:

databricks