2016-11-02 8 views
0

2つの独立したベジェパスからSKSpriteNodeを作成したいと思います。skspritodeodeへのベジェパス

道路の境界線と似ています。これらのパスは交差しませんが、私は1 SpriteNodeをプレイヤーの動きの境界線として取得したいと考えています。

私はそれらの間の距離が等しくなるようにしたいからです。 SkSpriteNodeを2つのパスから作成すると、私にとっては簡単になると思います。

私は、プレイヤーがそれを行うためにどのように「国境」は

触れたときの接触を取得するSKSpriteNodeが必要ですか?

あなたは

答えて

0

SKSpriteNode追加ありがとう:

let container = SKSpriteNode.init(color: UIColor.redColor(), size: CGSizeMake(800, 400)) 
    container.position=CGPointMake(300, 300) 
    self.addChild(container) 

CGPoint年代の配列を作成します。私はあなたが欲しいものは何でも使用することができるだけで三角形を使用:

let firstPathArray:[CGPoint]=[CGPoint(x: 0, y: 0),CGPoint(x: 100, y: 0),CGPoint(x: 50, y: 100)] 

は、コンテナへのパスを追加します。

addbezierPathToContainer(container,pathArray: firstPathArray) 

をパスを追加します。

func addbezierPathToContainer(container:SKSpriteNode,pathArray:[CGPoint]) -> Void { 
    let newpath = UIBezierPath() 
    var startpoint:Bool=false; 
    for path in pathArray { 
     if(!startpoint) 
     { 
      newpath.moveToPoint(CGPoint(x: path.x, y: path.y)) 
      startpoint=true; 
     } 
     else 
     { 
      newpath.addLineToPoint(CGPoint(x: path.x, y: path.y)) 
      newpath.addLineToPoint(CGPoint(x: path.x, y: path.y)) 
     } 


    } 
    //close path 
    newpath.closePath() 
    UIColor.blackColor().setStroke() 
    newpath.stroke() 
    let pathNode = SKShapeNode(path: newpath.CGPath) 
    container.addChild(pathNode); 
} 
+0

はどうもありがとうございました。 – Mamazur

関連する問題