My progress hasn't exactly been as I intended it. I've got some time off work this week though, so I'm hoping to make up for lost time.
Put the collision detection before the drawing part, though I dunno how your code looks like.
The collision detection
is before the drawing code, which is why it confused me. It turned out that when I tested for a collision I forgot to take the player's velocity into the equation, so the collision wasn't being detected until the next frame.
1. update sprite positions etc. according to their speed and time from the last frame
I almost forgot to do that. I wouldn't have noticed until I tested it on my brother's faster PC. Cheers for reminding me.
I've tidied a few other things up regarding collisions to avoid a bug where the player could be launched across the map (sometimes through the bounding wall) if they happen to land on a corner. I've also added terminal velocities to avoid anything else causing a player to leave the map or even just pass through a platform. Overall, the physics is pretty robust now.
Next up is the rocket code...