If the motion is done with behaviors the collision response when moving along walls has never been great. There hasn’t been much traction in getting it fixed either.
Smoother wall sliding can be done with events. A fair amount of ideas here:
construct.net/en/forum/construct-2/how-do-i-18/8-direction-behavior-slide-95148
When you use two behaviors to move an object at once their velocities are combined. Probably the simplest solution would be to divide the speeds by sqrt(2) when you’re moving and moving sideways to counteract the speed up. Or you can cap the speed by measuring the speed with
Speed= Distance(0,0, sprite.behavior1.velocityX+sprite.behavior2.velocityX, sprite.behavior1.velocityY+sprite.behavior2.velocityY)
Then when that’s more than a maxSpeed you’d multiply the speeds of both behaviors by:
MaxSpeed/speed.
If a behavior doesn’t have velocityX/y the usually have speed and angleOfMotion. You can calculate xy velocity from that
Vx=speed*cos(angle)
Vy=speed*sin(angle)