web-dev-qa-db-ja.com

アクションの途中でSKActionを終了することは可能ですか?

SKSpriteNode(monsterNode)のサブクラスがあります。ベクトルを使用して画面を自動的に実行し、プレーヤーを追跡します。私は現在、次のアクションを使用して実行しています。

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

IOSデバイスの画面の境界に達した場合にmonsterNodeが実際にアクションの実行を停止するようにすることが可能かどうか疑問に思っています。現在、画面の端にSKSpriteNode境界があり、モンスターと壁が接触したかどうかを通知するために連絡先デリゲートにリンクされています。ただし、実際にモンスターのactionMoveアクションの完了を止めることができなければ意味がありません。モンスターは画面の境界で停止する必要があります。実行中にSKActionを停止できない場合、それを回避する方法はありますか?

21
EvilAegis

SKNode.hヘッダーファイルを見てください。2つの関数がリストされています。

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

後者は機能します:[monsterNode removeAllActions];

37
ecsos