【发布时间】:2015-12-31 13:07:22
【问题描述】:
顶部功能有效。我有一个 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]))
}
}
【问题讨论】:
-
怎么去掉100?等待不会暂停你的 while 循环,所以在 1 秒内,谁知道发生了什么
-
我将 100 的位置替换为在 placeblocks 中随机创建的数字。您是说问题是while循环不会暂停以完成runaction?我认为它必须完成才能在包含时再次运行?
-
你在模拟器上测试了吗? runAction 不应该是立即的,它会在更新循环期间进行处理,而您永远不会到达,所以现在您正在添加数百万个操作并最终耗尽内存,因为您永远不会离开循环来完成更新
-
是的,我在我的手机上运行它并且它爆炸了。关于我应该改变什么以便随着时间的推移正确放置块的任何想法?
-
我有一个充满数字 100 的数组,如果数组包含 100,这意味着游戏板上还有点,因为我生成的数字在 1-50 之间。