
274
|
第
9
章
func findPotentialCover(steps : Int, distance : CGFloat) -> [CGPoint] {
//
初始化空数组
var coverPoints : [CGPoint] = []
//
在对象四周画一个圈,将这个圆等分成
steps
份,
//
每次取等分点上的那一点来进行扫描
for coverPoint in 0..<steps {
//
计算当前扫描到的角度(等分点)
let angle = Float(.pi * 2.0) * (Float(coverPoint) / Float(steps))
//
算出当前角度到达指定距离(
distance
)处的点
let potentialPoint = CGPoint(angleRadians: CGFloat(angle)) * distance
//
判断从这里到那里(
potentialPoint
)之间是否存在物体
if self.scene?.physicsWorld.body(alongRayStart: self.position,
end: potentialPoint) != nil {
//
如果有,
//
将这个点加到列表中
coverPoints.append(potentialPoint)
}
}
//
返回所找到的所有隐蔽点 ...