This page will show how to create top-down movement step-by-step. Let’s get started!
The first step is to create a player object. In the create event you will need a few variables.
move_speed = 2; move_x = 0; move_y = 0;
In the step event we can do the following:

The keyboard_check function returns either true or false, which is equal to 0 or 1. This means that we can actually calculate the net input in one line for each axis. If D is pressed and A is not, the result equals 1 – 0, which results in 1. If A is pressed and D isn’t the result will be -1. We can apply this same principle to the Y axis.
After that we can set move_x and move_y to equal the input multiplied by the move speed, this will result in the player moving either horizontally, vertically or diagonally (if both input_x and input_y are not 0).
To finalize simply do the following:
x += move_x;
y += move_y;
if no buttons are pressed the player will not move as move_x and move_y will be equal to zero.
That’s it, you should have simple top-down movement going on now!