好的,我对使用精灵套件编码相当新,所以我不太了解。我尝试在场景上方制作5块砖,然后每隔5秒向下滑入场景。我认为这段代码可行,但它对我的场景绝对没有任何意义。
我有另一种方法,已经将砖块加载到场景中并且可以正常工作,所以我认为这不会影响这一点但不太确定。
-(void) spawnMoreBricks:(CGSize)size {
for (int i = 0; i < 5; i++) {
SKSpriteNode *brick = [SKSpriteNode spriteNodeWithImageNamed:@"brick"];
//resize bricks
brick.size = CGSizeMake(60, 30);
//position it
brick.position = CGPointMake(self.size.width/2, self.size.height);
SKAction *wait = [SKAction waitForDuration:5];
SKAction *spawn = [SKAction scaleTo:1 duration:0];
SKAction *move = [SKAction moveByX:0 y:-80 duration:3];
SKAction *spawnSequence = [SKAction sequence:@[wait, spawn, move]];
[self runAction:spawnSequence];
}
}
答案 0 :(得分:0)
SKAction *wait = [SKAction waitForDuration:5];
SKAction *spawn = [SKAction runBlock:^{[self addChild: brick];
SKAction *move = [SKAction moveByX:0 y:-80 duration:3];
[brick runAction: move];
}];
SKAction *spawnSequence = [SKAction sequence:@[wait, spawn]];
[self runAction:spawnSequence];
以下是一组经过修改的操作。问题是你正在运行场景本身的所有动作。提供的代码在场景上运行一个等待5秒(充当延迟)的序列,然后运行生成动作。 runBlock允许我们将砖块添加到场景中,创建移动动作,并将该动作应用于砖块(而不是场景)