Has anybody had the idea of splitting the BG layer into collision-objects and then checking collision with each object? At first glance it might sound like it would be too CPU intensive, but if we reduce the number of distinct collision objects (like having the floor being an object, and the walls being another) as much as possible, it might be even faster.
Instead of computing the tile number for each block from the top to bottom of a character, it would only have to check if it went through a wall or not. You wouldn't have to deal with characters out-running the tile grid.
Instead of computing the tile number for each block from the top to bottom of a character, it would only have to check if it went through a wall or not. You wouldn't have to deal with characters out-running the tile grid.