Darklight:
The bouncing would probably work alright with a round bounce object, although I am not fully certain as for this engine I ended up changing Link's collision mask to be rectangular instead of precise collision checking with the mskShadow. This was done because when there is a ledge right next to a wall, if you are corner-cutting off of the wall and your ledge jump is activated, it'll mess up your descent. I had that mostly figured out, but it also involved calculating the abs(x - xprevious) and abs(y - yprevious) for how much you move in the direction of motion increasing your dist_a, and how much you move perpendicular altering the animation rate. A key problem that didn't go away was that if you were moving diagonally at the corner of a wall and it triggered the ledge jump, you'd be able to jump in place or appear stuck. Basically what I ended up going with was a lot simpler and more efficient.
However, even with Link having a rectangular mask, if the bounce object has a circular one, it would not be that difficult to run into it when you're moving diagonally - it should trigger the bounce_check_x and bounce_check_y which will move Link diagonally. Originally I was using one of RyuKage2007's MC Sea Urchins for my bounce object which would also decrement a hearts system I had going, lol. Also though, yeah, besides diagonal bouncing, I am pretty sure that using some sort of direction based sine or cosine measurement that the diagonal bounce can be made to appear more radial. Seems kind of easy actually.
dotyue:
Ha, originally I had the walls the same color as Link's shadow, so I darkened the walls to just be another shade of gray. Red looks better though I have to admit. But yeah, about the platforms, the one that moves vertically is meant to go under the solid object. The horizontal platform only went half the distance under the bounce object, well I don't really know exactly why I did it like that. I was probably using the hole on the bottom near it as a way to adjust the falling animation so that it's origin was set correctly. More over I guess I just wanted to have one that cleared Link off completely and one which only knocked him off if he stood in a certain position on the platform.