
226
|
第
7
章
克),第二个设置为
4
(磅,
1
磅约
0.454
千克),虽然对于用户来说差别不是很大,
但后者确实要比前者轻。
因为质量和密度相关,如果我们改变物体的密度,其质量也会发生改变(反
过来也一样)。
7.7
创建墙壁
问题
我们想在场景中创建一个可以碰撞的墙壁。
解决方案
创建墙壁的最有效方式是使用边缘碰撞体:
let wallsNode = SKNode()
wallsNode.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
let rect = self.frame.offsetBy(
dx: -self.frame.width / 2.0,
dy: -self.frame.height / 2.0
)
wallsNode.physicsBody = SKPhysicsBody(edgeLoopFrom:rect)
scene.addChild(wallsNode)
讨论
所谓“边缘碰撞体”是一种碰撞体,它仅仅是一个线条,或者多个连接在一起的线
条。不同于其他碰撞体,边缘碰撞体没有体积,也没有质量,它们是静态物体。
有两种不同的边缘碰撞体:
edge loop
和
edge chain
。后者是连接在一起的多条线段
的集合;前者则是另一种碰撞体,从终点一直连接到起点。
边缘碰撞体可以是任意形状。创建边缘碰撞体的最简单方式是创建一条从一个点到
另一个点的线段: