Thanks to everyone for their answers But I haven't quite figured out how to do this yet. I ran into some problems with the canvas, since I'm using platform movement as well. If a sprite with platform movement is placed on top of a canvas object with the solid attribute, the sprite will treat the entire canvas object as solid, not only the non-transparent pixels. So the sprite will be standing in thin air.
(or maybe I have misunderstood how you're supposed to use the canvas, that is also a very real possibility )
AS for JayJay and Casho's suggestions (thanks for the .cap ), this method seems to be working, but I'm worried about how much resources this would use on a large scale? It could easily be several thousand sprites. I'm worried that would give performance problems, but I'm not sure, does anyone know how many sprites are too many?
As for using a mask I'm pretty clueless on how I would actually do that in Construct?
Any help is appreciated