2016-05-19 2 views
1

kに複数のパスを追従させたい。 p1を終了してからp2を実行します。それがp2を終えると、p3に従います。これどうやってするの?スプライトがパスを終了したかどうかを検出するハンドラはありますか?スプライトが複数のCGPathを順にたどる

//k is my SKSpritenode 

func followPath(path:CGPath,sprite:SKSpriteNode,speed:CGFloat){ 

     sprite.runAction(SKAction.followPath(path, speed: speed)) 

    } 

followPath(p1, sprite: k, speed: 90) 
followPath(p2, sprite: k, speed: 90) 
followPath(p3, sprite: k, speed: 90) 

答えて

0

アクションのリストをシーケンスに追加し、このシーケンスを1つのロングアクションとして追加できます。

謝罪、私はXamarinとC#を使用して、私の呼び出しが多少異なって見えるが、本質的には、ここでは簡単な例を示しますされますので:

var rect = new CGRect(0, 0, 100, 100); 
var path = new CGPath(); 
path.AddRect(rect); 
var moveOneDirection = SKAction.FollowPath(path, false, true, 5.0f); 
var sequence = SKAction.Sequence(moveOneDirection, moveOneDirection.ReversedAction); 

sprite.RunAction(SKAction.RepeatAction(sequence, 3)); 

これは、当時、長方形に沿ってあなたのスプライトの移動を行いますこれを3回行う。明らかに、さらに多くのパスを追加することができます!

関連する問題