Здравствуйте и спасибо, что нашли время помочь.
Я экспериментирую с 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])
}