ios - 序列中可以有 if 语句吗?

标签 ios iphone objective-c sprite-kit

只是想增强这段代码的一部分,我想知道我是否可以在序列中包含一个 if 语句?当碎片数大于 10 时,我想减慢碎片的产生。

这是当前代码:

-(void)spawnDebris {
    //debris
    SKSpriteNode * debris = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"debris1.png"] size:CGSizeMake(40, 40)];
    debris.zPosition = 1.0;

    debris.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:15];
    debris.physicsBody.allowsRotation = NO; 
    debris.physicsBody.categoryBitMask = CollisionDebris;

    RandomPosition = arc4random() %248;
    RandomPosition = RandomPosition + 34;
    debris.position = CGPointMake (RandomPosition, self.size.height + 40);

    [_debris addObject:debris];
    [self addChild:debris];

    //next Spawn:
    [self runAction:[SKAction sequence:@[
          [SKAction waitForDuration:2],
          [SKAction performSelector:@selector(spawnDebris) onTarget:self],
    ]]];

    if (_dead == YES) {
        [self removeAllActions];
    }

}

_debris 是一个 NSMutableArray。所以基本上 SKSpriteNodes 每 2 秒添加一次,但要更改它,我想让它们的 waitForDurations_debris 计数后更改超过一定数量。

这是我想做的:

 //next Spawn:
    [self runAction:[SKAction sequence:@[
          [SKAction waitForDuration:2],
          [SKAction runBlock:^{
                 if (_debris.count > 10) {
                      [SKAction waitForDuration:7];
                 }
    }],
          [SKAction performSelector:@selector(spawnDebris) onTarget:self],
    ]]];

但这没有用。甚至可以在序列中使用 if 语句吗?我怎样才能让它工作?

最佳答案

代码将无法运行,因为 [SKAction waitForDuration:7] 未执行。

更容易的是:

float time = 2.0;

if (_debris.count > 10) { time = 9.0; }

[self runAction:[SKAction sequence:@[
      [SKAction waitForDuration:time],
      [SKAction performSelector:@selector(spawnDebris) onTarget:self],
]]];

关于ios - 序列中可以有 if 语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22885078/

相关文章:

ios - UITableViewCell 的 NSLayoutConstraint : Constraint must contain a first layout item

ios - 一个应用程序中的多个Notification Service Extension

CollectionView 中的 iOS UIButton 仅在该单元格上触发自定义动画

ios - 如何在 iOS 8 中不显示共享表直接启动事件?

iphone - 比 AVAudioPlayer 更快的替代品?

ios - ios键盘 "Go"按钮的 Action

ios - SWIFT - NSTimer,传递用户信息

objective-c - 设置数组为空

iphone - 使用字符串在 unichar 中显示 emogi 图标

iphone - UIImagePickerController 不会显示相机,只有相机胶卷