I'm making a crazy top down action RPG-type game, in the Link To The Past-type mould.
I would like the game to have small platforming elements, involving jumping, heights, swimming and so on.
I am using the 8 Direction Movement for the main character, and I have successfully made it so that the character can 'fly' over solids but gets stuck if he tries to approach them from the side.
(If 'Main Character Altitude' is higher than 'Solid Altitude', disable solid, and reenable when it's lower... simple!)
The problem is, I want to make this system function for every moving character on screen (enemies, animals etc). In this case, enabling or disabling solids doesn't work because they need to function for a variety of characters at a variety of heights. For example, if the main character sails over a solid, an enemy whose altitude is much lower should be prevented from passing, but because the solid is universally disabled, the enemy can pass through as well.
I have tried programming in a simple 'On Collision, Stop' command in events, but the 8 Direction movement, the Bullet bounce function... whatever I try, it doesn't work. There is no command that 'On X & Y collision, don't let X pass through Y' - it simply slows down X a bit and then lets it go through anyway.
Any ideas for a workaround?
Thanks in advance!
TLDR: I want to make solids 'Solid' for some objects and 'Not Solid' for others... at the same time, depending on which objects are higher 'Altitude'.