2016-11-02 3 views
0

Я хотел бы создать SKSpriteNode из 2 независимых траекторий безье.2 bezier path to skspritenode

Это похоже на границы дороги. Эти пути не пересекаются, но я хотел бы получить 1 SpriteNode в качестве границы движения игрока.

Причина в том, что я хочу получить равное расстояние между ними. Я думаю, что мне будет легче, если я сделаю 1 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