SKAction的问题

时间:2015-12-31 03:31:45

标签: swift skaction

顶级功能有效。我有一个5 x 5的电路板,而一个阵列包含100个,我需要继续生成块放在电路板上。最小的检查将板上存储的最小数字保持为最小,只使该块可单击。我希望随着时间推移产生块,第二个功能是我尝试但只是崩溃应用程序。

func generateAndCheckBlocks() {

    while smallestArr.contains(100){
        if placeBlocks() == true {
            checkSmallest()
        }
    }
}

func generateAndCheckBlocks() {

    let wait = SKAction.waitForDuration(1)
    let run = SKAction.runBlock {
        if self.placeBlocks() == true {
            self.checkSmallest()
        }
    }

    while smallestArr.contains(100){
        runAction(SKAction.sequence([run, wait]))
    }
}

1 个答案:

答案 0 :(得分:1)

你有多么奇怪的方法,你可能会遇到更大的问题,但我认为这是一种学习经历,所以......

而不是while循环,当你的游戏需要开始创建块时,只需执行:

//Only call this once, not in a loop
func generateBlocks() {

    let wait = SKAction.waitForDuration(1)
    let run = SKAction.runBlock {
        if self.placeBlocks() == true {
            self.checkSmallest()
        }
    }
    self.runAction(SKAction.repeatActionForever(SKAction.sequence([run, wait])), withKey:"blocks");


}

然后,您可以在更新循环中执行此操作:

if(!smallestArr.contains(100))
{
    self.removeActionForKey("blocks")
}