我怎样才能使自定义操作在特定时间间隔执行某些操作
How can i make a custom action execute something on specific intervals
所以每当我 运行 这个动作时,它会快速打印 hello world 3 秒(这正是我想要的),但它打印得太快了。我无法弄清楚的是如何在操作持续时间内的特定时间间隔(例如 1 秒间隔)打印 "hello world"。我尝试使用休眠功能,但没有用
let waitAndPrint = SKAction.customActionWithDuration(3) {
_, _ in
print("hello world")
}
还没有测试过,但也许这样的东西会起作用
for (int i = 1; i <= 3; i++) //<-where 3 is the number of seconds over which you want this event to occur.
{
[self performSelector:@selector(printHelloWorld:) withObject:self afterDelay:i];
}
-(void) printHelloWorld:(id)sender
{
NSLog(@"hello world")
}
它在 obj c 中,但你明白了
编辑
根据 Whirlwind 的建议,我已将 afterDelay:1
更改为 afterDelay:i
。我还通过在 printHelloWorld
之后添加冒号来修复选择器语法错误。
您可以通过行动来实现您想要实现的目标:
let block = SKAction.runBlock{
println("hello world")
}
scene.runAction(SKAction.repeatAction(SKAction.sequence([block, SKAction.waitForDuration(1.0)]), count: 3))
所以每当我 运行 这个动作时,它会快速打印 hello world 3 秒(这正是我想要的),但它打印得太快了。我无法弄清楚的是如何在操作持续时间内的特定时间间隔(例如 1 秒间隔)打印 "hello world"。我尝试使用休眠功能,但没有用
let waitAndPrint = SKAction.customActionWithDuration(3) {
_, _ in
print("hello world")
}
还没有测试过,但也许这样的东西会起作用
for (int i = 1; i <= 3; i++) //<-where 3 is the number of seconds over which you want this event to occur.
{
[self performSelector:@selector(printHelloWorld:) withObject:self afterDelay:i];
}
-(void) printHelloWorld:(id)sender
{
NSLog(@"hello world")
}
它在 obj c 中,但你明白了
编辑
根据 Whirlwind 的建议,我已将 afterDelay:1
更改为 afterDelay:i
。我还通过在 printHelloWorld
之后添加冒号来修复选择器语法错误。
您可以通过行动来实现您想要实现的目标:
let block = SKAction.runBlock{
println("hello world")
}
scene.runAction(SKAction.repeatAction(SKAction.sequence([block, SKAction.waitForDuration(1.0)]), count: 3))