【问题标题】:Is it possible to end an SKAction mid-action?是否可以在 SKAction 中途结束?
【发布时间】:2023-03-14 09:36:01
【问题描述】:

我有一个 SKSpriteNode (monsterNode) 的子类。它使用矢量自动在屏幕上运行以跟随玩家。我目前正在使用以下操作使其运行:

SKAction *actionMove = [SKAction moveTo:actualDistance duration:time];
        [self runAction:actionMove completion:^ {
            _currentState = SVGMonsterStateIdle;
        }];

我想知道是否有可能做到这一点,如果 MonsterNode 到达 iOS 设备屏幕的边界,它实际上会停止运行该操作。我目前在屏幕边缘有 SKSpriteNode 边界,与联系代表链接以通知怪物和墙壁是否接触。但是,如果我不能真正阻止怪物的 actionMove 动作完成,那将毫无意义。怪物需要停在屏幕的边界。如果无法在 SKAction 中途停止执行,是否有迂回的方法可以这样做?

【问题讨论】:

    标签: ios objective-c sprite-kit skaction


    【解决方案1】:

    查看SKNode.h 头文件 - 它列出了两个函数:

    - (void)removeActionForKey:(NSString *)key;
    - (void)removeAllActions;
    

    后者将起作用:[monsterNode removeAllActions];

    【讨论】:

    • 射击。我查看了错误的文档(SKAction 文档)。谢谢!
    • 关注问题:似乎有节点方式来设置key属性。子类?
    • 编辑:代替[node runAction:myaction],使用[node runAction:myaction withKey:@"mykey"];.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2012-07-23
    • 1970-01-01
    • 2021-03-24
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多