Ios 当某些条件为真时,如何重复操作?
当某些条件为真时,我希望上述操作不断重复。我该怎么做 我知道我可以使用Ios 当某些条件为真时,如何重复操作?,ios,algorithm,swift,sprite-kit,Ios,Algorithm,Swift,Sprite Kit,当某些条件为真时,我希望上述操作不断重复。我该怎么做 我知道我可以使用runAction(action)运行一次操作,或者使用runAction(SKAction.repeatActionForever(action))永远重复操作。但是,当某些条件为真时,我如何才能重复它 如果使用操作无法做到这一点,那么在某些条件为真时,是否有其他方法可以重复这些步骤(显然,在另一个线程上,我不想冻结我的应用程序): 1) 等一下 2) 执行一段代码 3) 检查条件是否为真。如果是,请停止重复。否则,重复 我
runAction(action)
运行一次操作,或者使用runAction(SKAction.repeatActionForever(action))
永远重复操作。但是,当某些条件为真时,我如何才能重复它
如果使用操作无法做到这一点,那么在某些条件为真时,是否有其他方法可以重复这些步骤(显然,在另一个线程上,我不想冻结我的应用程序):
1) 等一下
2) 执行一段代码
3) 检查条件是否为真。如果是,请停止重复。否则,重复
我不太愿意使用
sleep()
,因为这听起来是一个糟糕的解决方案,而且苹果不允许在他们的商店中使用应用程序 您可以使用SKAction的
- (SKAction*)运行块:(调度块)块 队列:(调度队列)队列
var action = SKAction.sequence([
SKAction.waitForDuration(1),
SKAction.runBlock({
//Some code
})
])
像苹果派一样简单我的孩子使用Swift的替代解决方案:
SKAction *logic = [SKAction runBlock:^{
if (myvar){
NSLog(@"hello world!");}
else
{
//remove actions
}} queue : dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
SKAction *delay = [SKAction waitForDuration: 0.5];
SKAction *mySequence = [SKAction sequence:@[logic,delay,nil]];
[myNode runAction:mySequence];
对不起,我有点困惑。你能举个小例子吗?我不确定我将如何整合“waitForDuration”。
runAction(
SKAction.repeatActionForever (
SKAction.sequence([
SKAction.waitForDuration(1),
SKAction.runBlock({
//Code you want to execute
if conditionIsTrue {
self.removeActionForKey("New Thread")
}
})
])
),
withKey: "New Thread"
)