
物理学
|
227
let point1 = CGPoint(x: -50, y: 0)
let point2 = CGPoint(x: 50, y: 0)
let edgeBody = SKPhysicsBody(edgeFrom: point1, to: point2)
或者用一个矩形来创建,就像前面的示例代码中,调用
SKPhysicsBody(edgeLoop
FromRect:)
方法创建。
除此之外,我们还可以创建任意形状。既可以用
edge chain
也可以用
edge loop
。
创建形状时可以使用路径,正如我们创建多边形时一样(见
7.4
节)。只不过有一
点不同:我们不需要关闭路径,因为
edge chain
并不需要使用封闭的多边形:
let path = UIBezierPath()
path.move(to: CGPoint(x: -50, y:-10))
path.addLine(to: CGPoint(x: -25, y:10))
path.addLine(to: CGPoint(x: 0, y:-10))
path.addLine(to: CGPoint(x: 25, y:10))
path.addLine(to: CGPoint(x: 50, y:-10))
let wallNode = SKShapeNode()
wallNode.path = path.cgPath
wallNode.physicsBody = SKPhysicsBody(edgeChainFrom: path.cgPath) ...