Looking for a suggestion, pseudo code or article on paths

I have a couple ideas for some games but I’m not sure how to implement it. I was wondering if anyone had any suggestions.

Here is the basic idea.

I want the player to move around the edge of multiple rectangles. The rectangles can be any size and there can be multiple ones but the player sprite has to stay on the side. If the rectangles share a side the player can move to either rectangle


-----
|    |--x--
|    |     |
-----      |
     |     |
      -----

 

Would you set up each rectangle as an object then just check its bounds versus the players attempt at movement? For example if the player attempts to move Right, the code checks to see if the player coordinates are only the top or bottom plane of a rectangle? If the player is not on that plane, right is not allowed?

Is there a better way to set up a player path?

I’d probably just do some smart linking at level initialization. Pretty much, give each Rectangle a List of north, south, east, and west linked rectangles. When you first load up your level, do bounds checking to populate the list, then all you need to do during the game is know what side of which rectangle the the player currently is, and then only check against the bounds of the rectangles in that list.

ex.)
I’m on the north side of RectangleX.
RectangleX has RectangleY, RectangleZ, and RectangleW in its north List.
I iterate through those 3 rectangles in the north list and see if I’m within the bounds of any of them.
I move to the one that I’m within, or I don’t move at all.

You’ve still got ways to make this faster but it will probably be cheap enough in most situations, because you are unlikely to ever be comparing against more than 3 rectangles at a time, and bounding box collision is cheap.