Yeah I thought it seemed too simple
I see what you mean now, off the top of my head if the walls and player was both set to solids, and the player also had the 'bullet' behaviour on him (setting the bullets angle and speed based on the direction pressed) , then an event for when he hits a solid, set his speed to 0
To fix an issue where he might not move due to being right next to a wall, you could always add an event to check when his bullet speed is 0 (ie stopped) , move him more central in the tile / empty square hes in, only needs to be by a pixel or 2 so wouldnt be noticed.