On Mon, Sep 5, 2011 at 5:54 PM, Nathan BIAGINI <nathan.o...@gmail.com> wrote: > Hi again, > > i have a new problem to solve concerning my little car game. Actually i > thought i did it but i just stopped a bug in my code. > > In fact, i decided to not move the car but to scroll the screen. I only move > the car when the player reach one of the four edges of the map. I keep the > 'virtual' position of the car on the circuit and i use them to determinate > how i need to stop scrolling the screen and start moving the car. [...]
Hi Nathan, I ran your demo and I have two suggestions: 1. You calculate a new rectangle for your car at the top of the update method based on self.image from *last* frame. Then you calculate a new self.image based on the current rotation. When I moved the rectangle calculation down to be the last thing in update(), the turning was *much* smoother. 2. When doing scrolling like this, I would normally give the player object only what you call "virtual_x" and "virtual_y" - the position of the player relative to the map. These would be the only things updated in the update() method - I wouldn't track x, y, offset_x or offset_y at all. I create a separate class that I call "Camera" or "Viewport" with its own x and y, then at the point that I'm drawing things I subtract the camera's x and y from the player's x and y to find the screen coordinates to draw the player. Here's your demo with those two changes: http://pastebin.com/mxmbZGLT Hope that's helpful!