GKAgent не двигается
У меня есть GKAgent в моем проекте, который я пытаюсь перенести, следуя по пути. Путь был создан вместе с соответствующими целями и поведением, и он будет двигаться до тех пор, пока я никогда не установлю его позицию. К сожалению, я не хочу, чтобы это начиналось в углу экрана, но если я установлю позицию, агент не будет реагировать на свою цель следования по пути. У кого-нибудь есть понимание этой проблемы?
let path1 = GKPath(graphNodes: path, radius: Float(2.0))
let moveGoal = GKGoal(toFollowPath: path1, maxPredictionTime: 1.0, forward: true)
let stayGoal = GKGoal(toStayOnPath: path1, maxPredictionTime: 1.0)
let behavior = GKBehavior(goals: [moveGoal, stayGoal] , andWeights: [5.0, 10.0])
agent.maxSpeed = 100
agent.maxAcceleration = 50
agent.radius = 40.0
agent.behavior = behavior
agent.delegate = self
addComponent(agent)
func agentWillUpdate(agent: GKAgent) {
updateAgentPositionToNode()
}
func agentDidUpdate(agent: GKAgent) {
updateSpritePositionToAgent()
}
func updateSpritePositionToAgent() {
print(agent.position)
let agentPos = CGPoint(x: CGFloat(agent.position.x), y: CGFloat(agent.position.y))
renderComponent.spriteNode.position = CGPoint(x: CGFloat(agentPos.x), y: CGFloat(agentPos.y))
}
func updateAgentPositionToNode() {
let renderComp = self.renderComponent
agent.position = float2(Float(renderComp.spriteNode.position.x), Float(renderComp.spriteNode.position.y))
}