In the end of chapter 7 we write the movement
function in movement.rs
We call the camera on_player_move
method like so:
camera.on_player_move(&want_move.destination);
This results in a compile error on my machine because on_player_move
expects a reference.
The latest code in the book I see for the camera method is back in Chapter 5
pub fn on_player_move(&mut self, player_position: Point) {
self.left_x = player_position.x - DISPLAY_WIDTH/2;
self.right_x = player_position.x + DISPLAY_WIDTH/2;
self.top_y = player_position.y - DISPLAY_HEIGHT/2;
self.bottom_y = player_position.y + DISPLAY_HEIGHT/2;
}
Looking at the code zip it appears that the function is always expecting a reference, though I got a bit lost on the folder names so it could be wrong there too.
Changing the method to expect a reference fixes the compile error and it appears to run fine.
I didn’t test it but I think the method could take in either a Point or an &Point and as long as the method is called the same it should be fine? If this is true, is this because destination
always is a calculated value that doesn’t need to worry about the borrow checker?