Spent a couple more hours working on collision detection. These issues are really finicky and tricky: It’s like picking a knot apart with your fingernails. I found some calculation errors which were exacerbating the problem, but many of the issues remain. Still, I feel like I’m getting deeper into the collision code now, and starting to really get a feel for what it’s doing. I think it’s just a matter of time.
Oh, I also added a minor feature to the level editor where mousing over a tile reads out its coordinates and tile properties at the top of the screen. I added it mostly to make debugging collision easier, so I could easily see what parts of the level it’s trying to test against when the character is at a given location, but I think it will be quite generally useful a bit later on.