The player object has "collision mask" assigned to it. This is set in the object panel just below where you assign the sprite.
The object will use the assigned sprite's mask for all collision checks. You can also do this yourself by setting the "mask_index" variable to any sprite.
In the draw event I then draw the mask index with draw_sprite(mask_index,0,x,y) at a 50% alpha and then draw the normal character sprite on top. This way I know the mask is lined up and positioned to the character as I expect.
Viewing post in TDMC 2.0 - for GameMaker 2022+ comments
Thanks and I'll post this clarification in the yoyo forums so you don't have to! Just to make sure I've understood you, you are using a different sprite for the collision mask (the green square). But is it still true that the instance calling tile_meeting_precise also needs its collision mask type set to precise per frame (as place_meeting says it does)? Otherwise it won't work, right?
I think I get it now but honestly it's pretty crucial to the setup that we understand that any moving objects calling this function are likely to need a separate sprite for their collision mask and both the calling instance and the checker object need to have precise per frame turned on (not just the checker object). Maybe that was obvious to you but not to me because I've never had to do that before; rectangular collision masks always worked fine for me so I just haven't had to do something else. There might be quite a few others that get equally confused when they get everything set up, but haven't picked a different sprite for the collision mask, and find that their character sprite's head is triggering collisions; or, because they didn't turn on precise per frame in their character object, bounding boxes end getting used instead of precise checking. I don't know if you can edit the yoyoblog post to clarify that now but it might help others avoid some headaches. Awesome job though! I really like how this method combines the best of different approaches!
Hey, thanks for the feedback. I explain this stuff waaaaaaay back in my old top down movement and collision video, but you are right: an update is long overdue. With the release of 2.3 I'm updating all of my assets and planning comprehensive "getting started with" youtube videos, and this will definitely be included. Sorry for the confusion, hopefully it will be easier to set up in the future!