顶级功能有效。我有一个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]))
}
}
答案 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")
}