I know I am early but I like to repeat the training with the next Swift version as a learning experience. So far the changes have been minimal and easily implemented. I am stuck on how to resolve the following from Chapter 12: Beginning Tile Maps page 326.
func move(target: CGPoint) {
guard let physicsBody = physicsBody else { return } let newVelocity = (target - position).normalize() * PlayerSettings.playerSpeed physicsBody.velocity = CGVector(point: newVelocity)
}
The line starting with let newVelocity creates the following error on the target - position portion of the statement.
Cannot use mutating member on immutable value: β-β returns immutable value
I looked at this a little longer and discovered that the issue relates to the result of (target - position) returning an immutable value which causes the .normalize() to syntax. As an actual fix needs to be implemented in the SKTUtils it was much simpler to simply use:
var newVelocity = (target - position)
newVelocity = newVelocity.normalize() * PlayerSettings.playerSpeed