SKAction不会永远重复

时间:2015-01-31 15:50:31

标签: ios sprite-kit skspritenode skaction

尽管明确将SKAction设置为repeatActionForever,但下面的代码并没有重复。

SKAction *action = [SKAction moveToY:self.frame.size.height + bullet.size.height duration:2];
SKAction *remove = [SKAction removeFromParent];
SKAction *fireForever = [SKAction repeatActionForever:[SKAction sequence:@[action,remove]]];
[bullet runAction:fireForever];

子弹只发射一次,预计每1秒发射一次。

1 个答案:

答案 0 :(得分:0)

您正在从父母那里移除子弹,这就是为什么它不会再次发射, 你应该做的是创建一个方法来创建一个子弹 - 解雇它 - 销毁它,并创建一个使用这种方法的SKAction。

-(void)FireBullet
{
    //create bullet
    //fire it
    //remove from parent
}

并在希望子弹开始射击时添加以下代码。

SKAction *myAction = [SKAction performSelector:@selector(FireBullet) onTarget:self];
SKAction *forever = [SKAction repeatActionForever:myAction];
[self runAction:forever];

希望这有帮助,如果您需要更多帮助,请告诉我。