繁体   English   中英

SKAction在执行另一项操作后未运行

[英]SKAction is not running after another action

我基本上是在尝试编写“在杯子底下找球”游戏进行练习。 因此,有3个杯子和一个目标要找到。 全部使用SKSpriteNode 目标随机是一个杯子的子对象,并且随着父对象绕SKNode旋转而跟随旋转。

在每个游戏之间,该程序应该通过简单地将其上,下动画来显示目标。 这是序列代码:

    //THE ANIMATIONS
    SKAction *moveUp = [SKAction moveByX:0.0 y:100 duration:1];
    SKAction *moveDown = [SKAction moveByX:0.0 y:-100 duration:1];
    SKAction *wait = [SKAction waitForDuration:0.5];
    _presentTargetSequence = [SKAction sequence:@[moveUp,wait,moveDown]];

以及使用它的方法:

- (void) presentTarget
{
    NSLog(@"presentTarget()");
    [_target runAction:_presentTargetSequence completion:^{
        _canMove = YES;
    }];
}

该代码运行良好,但是只有在第一次之后,该方法才被调用,但永远不会通过[_target runAction ...]

但是,如果目标确实进入旋转/交换中,它将起作用。 所以我的问题是:是否有什么可以使节点忽略它的运行操作方法? 如我所说, NSLog(@"presentTarget()")被调用,但没有反应。

我发现每次我对某个动作没有运行感到困惑时,都是因为运行该动作的对象当前不在场景的节点层次结构中。 这没有错误,只是不执行操作。 因此,请仔细检查以确保在您要求对象运行动作时将其添加到当前场景。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM