GKGoal toAvoid игнорируется - PullRequest
1 голос
/ 15 июня 2019

Здравствуйте и спасибо, что нашли время помочь.

Я экспериментирую с GKGoals и смог понять и заставить их все работать, кроме toAvoid.

В приведенном ниже коде toSeek работает нормально, но toAvoid игнорируется / отменяется поиском полностью - «игрок» просто идет сквозь препятствия. Несмотря на то, что я сильно утратил силу, чтобы избежать.

Что я делаю не так или что я не понимаю, пожалуйста. Большое спасибо

EXTRACT
let obstacles = [GKCircleObstacle(radius: 100), GKCircleObstacle(radius: 100), GKCircleObstacle(radius: 100), GKCircleObstacle(radius: 100)]
obstacles[0].position = vector_float2(200, 500)
obstacles[1].position = vector_float2(250, 500)
obstacles[2].position = vector_float2(300, 500)
obstacles[3].position = vector_float2(20, 500)



EXTRACT
override func touchesBegan(_ touches: Set<UITouch>, 
with event: UIEvent?) {
for t in touches {
loc = t.location(in: self)
print("touchesBegan \(loc)")
}

let targetMove = float2(loc!)
let newTarget = GKAgent2D()
newTarget.position = targetMove

let mmg: [MoveC] = 
entityManager.moveComponentsForTeam(.team1)
let goal1 = GKGoal(toSeekAgent: newTarget)
let goal2 = GKGoal(toAvoid: obstacles, maxPredictionTime: 2)
mmg[0].behavior?.setWeight(10, for: goal1)
mmg[0].behavior?.setWeight(1000, for: goal2)
mmg[0].behavior = GKBehavior(goals: [goal1,goal2])

}
...