I managed to fix a lot of my issues:
- I made a 'foot' detector under the Platformer object. When it's overlapping a "MovingPlatform" family (and "MovingPlatformSprite" and "MovingPlatform3D") object, and 'is on ground', it goes through the following:
-- If the platform is moving left, then move the sprite left, unless the left detector hits a solid. This is important because otherwise moving the sprite left will happen after the platformer logic but before the next set of platformer logic, causing what appears to be a bug to manifest in the platformer logic: if any part of the platformer sprite, including parts that aren't colliding (because they're transparent), is overlapping a solid at the front of a frame, it bumps it up to the top of the platform immediately. This means if your detectors are outside of collision area but inside the bounding boxes, then you might have trouble.
-- Do the same with right
-- For up and down, move the sprite up PLUS one more, or down PLUS one more. This avoids the 'push to the left' issue. Which I think can be easily shown by just having a platformer object, a solid object under it, and moving the solid object up.
- When the head detector is overlapping a moving platform moving down, then move the sprite down, otherwise it ends up 'popping' above the platform.
- When the left/right detectors are overlapping apltform moving right/left, push the character.
I do have a weird issue still where sometimes if you jump on to a platform that's slightly off the ground that's moving toward you, it warps you beneath the level, but I can't find where that's happening. I'll have to wait until debug is fixed. And another where I can get 'hooked' on to the side of a platform moving towards you, but these are compartively minor bugs in that I got the movement correct.
But, to clarify: There's no way to 'simulate' being on a platform using the platform system? It's either solid or nothing?