Posted this in the discussion group on steam as well;
So due to a few issues I've had to come up with a slightly odd method using barriers in my game.
The stages are primarily tileable quick backdrops that the player(s) can move in 8 directions on. but the quick backdrops include a street/sidewalk to move on as well as the edges of walls and buildings on the top half.
I had initially put in barriers on the upper and lower limits of the movement area and placed a 'stop movement on collision' event that applies to both limits; However while this technically worked it had a strange visual effect because the player is given movement control back on the next frame. The character very quickly flashes between their stopped animation and the first frame of 'walking' and does this for the duration of the player pushing against the barrier.
I there is a method of fixing this animation issue this would probably be the best method to use.
Unable to think of a solution I tried this alternative method;
Using the same barriers and collision events, I changed the resulting action to change the allowed directions instead. So if the player collides with the upper limit barrier they can no longer move in any upward direction, but they can still move left,right, and any donward direction. Likewise for if they collide with the lower limits, the can only move left, right or in any upward direction.
This solution solved the visual issue however the collision detection on this part seems to be rather soft, depending on how fast the character is moving. If I tap the character slowly into it the pixels on the edge will collide and the character will no longer be able to move in that directions. However if the character is moving at speed from any direction, they will at times be able to embed their character almost half-way into the barrier before the movement limit finally goes into effect.
On issue with this solution is that the walkable area is at least 2 times the height of the characters, so I've put a thin 'barrier' line in the middle that restores all movement directions.
The end result is that if moving slowly, characters/players can seamilessly walk around and the directional limits are percieved running into a wall or barricade. Without it however the result is that the player has to tap the top and bottom like a tag-team wrestler to move.
I realize this is long-winded but I figured a full explanation was in order.
As well, it seem you cannot negate a collision event which is unfortunate as I believe that would have been fairly helpful.
Another reason I'm using allowed directions rather than simple stops (other than the animation issue) is so that if a player hits the upper or lower limit of the directional movement zone, they can still jump. That way it looks like they're just hitting the edge of buildings or walls, but jumping still works so the illusion is maintained.
If the character didn't sink half-way into the barrier when moving at full speed, this wouldn't be an issue at all.