
物理学
|
237
deltaTime =
当前帧时间
–
上一帧时间
一旦我们计算出这个时间,就可以用来和作用力相乘。
7.16
制造爆炸
问题
我们想在某些物体上制造爆炸效果。
解决方案
在你的
SKScene
中加入以下方法:
func applyExplosion(at point: CGPoint,
radius:CGFloat, power:CGFloat) {
//
创建一个矩形,
//
以便计算出哪些物体处于爆炸范围内
let explosionRect = CGRect(x: point.x - radius,
y: point.y - radius,
width: radius*2, height: radius*2)
//
针对每个物体,都应用爆炸效果
self.physicsWorld.enumerateBodies(in: explosionRect,
using:{ (body, stop) in
//
获得该物体节点的位置
if let bodyPosition = body.node?.position {
//
算出爆炸点到该物体的两个直角边
let explosionOffset =
CGVector(dx: bodyPosition.x - point.x,
dy: bodyPosition.y - point.y)
// ...