No worries for asking questions. It’s often hard to find answers to old questions.
Sounds like you’re onto the start of a working solution.
Basically all that’s needed to wall slide is to move out of the wall in the closest direction when you overlap a wall. The two parts to this is detecting where the walls are and moving away from the walls.
Detectors can work for the first, but you have to be careful with the collision boxes.
The moving out can be done by just moving out by a bit from each overlapping wall, using the detectors to know which direction.
Here’s a rough example.
Repeat 10 times
— position detector sprites
— detectorLeft is overlapping wall
—— sprite: move right 1 pixel
— detectorRight is overlapping wall
—— sprite: move left 1 pixel
...and so on for up and down.
So something like that would move out a max of 10 pixels out of the walls, a pixel at a time. Could prove jittery though, so you can make it move by less than 1 pixel. Also if it doesn’t move far enough you’d increase the repeats. It’s a balance between jittery and fast or smoother yet slow.
There is also the custom movement behavior’s push out action. It does stuff like the above with one action. Could be useful.
There are jumping issues with that behavior so here is a more precise solution. Makes very smooth wall sliding. Hopefully simple enough to copy paste over.
construct.net/en/forum/construct-2/how-do-i-18/how-do-i-make-the-8-direction-95148