My platformer has both rectangular tiles and right-triangle slopes with rectangular hitboxes. My sprites are also rectangular.
Collision with only rectangular tiles works well. Even if there are multiple rectangular tiles, collision still works pretty well.
Sprites can collide with individual slopes correctly as well, however, they collide at a different point. In order for the character's feet to be walking down the slope instead of hovering over it, the collision point for slopes is the bottom-center point. For rectangles, it is either corner.
The problem is moving from a rectangular tile onto a sloped one. The sprite resolves by the corners first, since it is resting atop a rectangular tile. However, the center point is resting above the slope, and the sprite will not move onto the slope until it is entirely moved off of the rectangular tile.
Here's a diagram:
How can I reliably use two different collision points for different tiles in a way that allows sprites to walk between rectangular and sloped tiles?