What I do for rogue like movement is quite simple. I make a sprite. I give this sprite 2 variables: "buffer_x" and "buffer_y".
Then I check for press presses:
if "buffer_x" and "buffer_y" are 0
- repeat while pressing right / add 32 (the size of the tiles) to buffer_x
- repeat while pressing down / add 32 (the size of the tiles) to buffer_y
if buffer x > 0
- set buffer_x = buffer_x - 2
- set player's x position = player's x position + 2
Repeat for all directions.
Hope this made sense and was useful