带间隔的 SKSpriteNode 选择器
Posted
技术标签:
【中文标题】带间隔的 SKSpriteNode 选择器【英文标题】:SKSpriteNode selector with interval 【发布时间】:2013-10-31 18:47:53 【问题描述】:SpriteKit 相当于什么?
[CCNode schedule:@selector(doActivate)
interval:[[enemyData objectForKey:@"spawnTime"] floatValue]];
【问题讨论】:
【参考方案1】:您可以使用 SKAction 来执行此操作:
+ (SKAction *)performSelector:(SEL)selector onTarget:(id)target or
+ (SKAction *)runBlock:(dispatch_block_t)block queue:(dispatch_queue_t)queue
结合:
+ (SKAction *)repeatActionForever:(SKAction *)action
和
+ (SKAction *)waitForDuration:(NSTimeInterval)sec
每次通话之间的延迟
【讨论】:
自己构建计时器?这些助手实际上并没有转化为 Cocos 等价物。 我进行了编辑以计算“计时器”,也就是延迟。这是“SpriteKit”最接近的。您唯一的其他选择是使用更通用的 ios 方法在计时器上运行块或选择器。 performSelector:afterDelay: 也可以,尽管这是基于时间而不是基于帧的。【参考方案2】:Cocos 中的调度器:
[self schedule:@selector(doActivate:)
interval:[[enemyData objectForKey:@"spawnTime"] floatValue]];
在 Spritekit 中使用 SKAction 等效:
SKAction *wait = [SKAction waitForDuration:[[enemyData objectForKey:@"spawnTime"] floatValue]];
SKAction *performSelector = [SKAction performSelector:@selector(doActivate:) onTarget:self];
SKAction *sequence = [SKAction sequence:@[performSelector, wait]];
SKAction *repeat = [SKAction repeatActionForever:sequence];
[self runAction:repeat];
【讨论】:
以上是关于带间隔的 SKSpriteNode 选择器的主要内容,如果未能解决你的问题,请参考以下文章