2013-09-27 19 views
20

私はSKSpriteNode(monsterNode)のサブクラスを持っています。それは自動的にベクトルを使用して画面の周りを実行し、プレーヤーに従います。私は現在、それが走り回るようにするには、次のアクションを使用しています:それはそうmonsterNodeが実際にそれがiOSデバイスの画面の境界に当たる場合は、アクションの実行を停止させるために、その可能ならば、私は疑問に思ってSKActionの中間アクションを終了することはできますか?

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

。私は現在、画面の端にSKSpriteNodeの境界線を持っています。連絡先デリゲートとリンクして、モンスターと壁が接触するかどうかを通知します。しかし、モンスターのactionMoveアクションが完了するのを実際に止めることができない場合は、何も意味しません。モンスターは画面の境界で停止する必要があります。実行中のSKActionを停止することができない場合、ラウンドアバウトの方法はありますか? SKNode.hヘッダファイルで

答えて

36

ルック - それは二つの機能が列挙されている:

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

後者が動作する:[monsterNode removeAllActions];

+0

シュート。間違ったドキュメント(SKActionドキュメント)を調べました。ありがとう! – EvilAegis

+0

質問に従う:キープロパティを設定するノードの方法があるようです。サブクラス? – Jonny

+2

編集: '[node runAction:myaction]'の代わりに '[node runAction:myaction withKey:@" mykey "]';を使います。 – Jonny

関連する問題