
230
|
第
7
章
为
2.0
表示物体运动速度将加快至原来的
2
倍(不过,调快物理模拟时钟速度会增
加物理模拟的不稳定性)。
同理,我们也可以用这个属性创建一种“慢镜头”效果:将
speed
属性设置为大于
0
但小于
1
的数,将使时钟变慢,这在凸显某种动人心扉的画面或者爆炸场景时比
较有用。
7.11
碰撞检测
问题
我们想判断碰撞什么时候发生。
解决方案
首先,让你的
SKScene
子类实现
SKPhysicsContactDelegate
协议。
然后,实现
didBeginContact
和
didEndContact
方法:
func didBegin(_ contact: SKPhysicsContact) {
print("Contact started between \(contact.bodyA) and \(contact.bodyB)")
}
func didEnd(_ contact: SKPhysicsContact) {
print("Contact ended between \(contact.bodyA) and \(contact.bodyB)")
}
在创建完我们的场景内容之后,将物理世界的
contactDelegate
属性为设置为这个
场景:
self.physicsWorld.contactDelegate = self
随后,将所有需要接收碰撞检测通知的物体的
contactTestBitMask
设置为非零的
值,如
0x01
。例如我们先将这个值存到一个常量:
let myObjectBitMask ...