Skip to main content

What you can do is create seperateseparate timers for each movement instance.

For example, for going up, down, right and left, you can create a timer that goes like:

private void up_Tick(object sender, EventArgs e) { //this makes the player go up player.Top -= 3; } private void down_Tick(object sender, EventArgs e) { //this makes the player go down player.Top += 3; } private void left_Tick(object sender, EventArgs e) { //this makes the player go left player.Left -= 3; } private void right_Tick(object sender, EventArgs e) { //this makes the player go right player.Left += 3; }

private void up_Tick(object sender, EventArgs e)
        {
            //this makes the player go up
            player.Top -= 3;
        }
 private void down_Tick(object sender, EventArgs e)
        {
            //this makes the player go down
            player.Top += 3;
        }
 private void left_Tick(object sender, EventArgs e)
        {
            //this makes the player go left
            player.Left -= 3;
        }
 private void right_Tick(object sender, EventArgs e)
        {
            //this makes the player go right
            player.Left += 3;
        }

private void yourFormName_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.W) { \this starts the timer to go up and if you press the W key then the player goes up up.Start(); } if (e.KeyCode == Keys.S) { \this starts the timer to go down and if you press the S key then the player goes down down.Start(); } if (e.KeyCode == Keys.D) { \this starts the timer to go right and if you press the D key then the player goes right right.Start(); } if (e.KeyCode == Keys.A) { \this starts the timer to go left and if you press the W key then the player goes left left.Start(); } }

private void yourFormName_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.W)
    {
    \\this starts the timer to go up and if you press the W key then the player goes up
    up.Start();
    }
    if (e.KeyCode == Keys.S)
    {
    \\this starts the timer to go down and if you press the S key then the player goes down
    down.Start();
    }
    if (e.KeyCode == Keys.D)
    {
    \\this starts the timer to go right and if you press the D key then the player goes right
    right.Start();
    }
    if (e.KeyCode == Keys.A)
    {
    \\this starts the timer to go left and if you press the W key then the player goes left
    left.Start();
    }

}

What you can do is create seperate timers for each movement instance

For example, for going up, down, right and left, you can create a timer that goes like

private void up_Tick(object sender, EventArgs e) { //this makes the player go up player.Top -= 3; } private void down_Tick(object sender, EventArgs e) { //this makes the player go down player.Top += 3; } private void left_Tick(object sender, EventArgs e) { //this makes the player go left player.Left -= 3; } private void right_Tick(object sender, EventArgs e) { //this makes the player go right player.Left += 3; }

private void yourFormName_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.W) { \this starts the timer to go up and if you press the W key then the player goes up up.Start(); } if (e.KeyCode == Keys.S) { \this starts the timer to go down and if you press the S key then the player goes down down.Start(); } if (e.KeyCode == Keys.D) { \this starts the timer to go right and if you press the D key then the player goes right right.Start(); } if (e.KeyCode == Keys.A) { \this starts the timer to go left and if you press the W key then the player goes left left.Start(); } }

What you can do is create separate timers for each movement instance.

For example, for going up, down, right and left, you can create a timer that goes like:

private void up_Tick(object sender, EventArgs e)
        {
            //this makes the player go up
            player.Top -= 3;
        }
 private void down_Tick(object sender, EventArgs e)
        {
            //this makes the player go down
            player.Top += 3;
        }
 private void left_Tick(object sender, EventArgs e)
        {
            //this makes the player go left
            player.Left -= 3;
        }
 private void right_Tick(object sender, EventArgs e)
        {
            //this makes the player go right
            player.Left += 3;
        }
private void yourFormName_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.W)
    {
    \\this starts the timer to go up and if you press the W key then the player goes up
    up.Start();
    }
    if (e.KeyCode == Keys.S)
    {
    \\this starts the timer to go down and if you press the S key then the player goes down
    down.Start();
    }
    if (e.KeyCode == Keys.D)
    {
    \\this starts the timer to go right and if you press the D key then the player goes right
    right.Start();
    }
    if (e.KeyCode == Keys.A)
    {
    \\this starts the timer to go left and if you press the W key then the player goes left
    left.Start();
    }

}
Source Link

What you can do is create seperate timers for each movement instance

For example, for going up, down, right and left, you can create a timer that goes like

private void up_Tick(object sender, EventArgs e) { //this makes the player go up player.Top -= 3; } private void down_Tick(object sender, EventArgs e) { //this makes the player go down player.Top += 3; } private void left_Tick(object sender, EventArgs e) { //this makes the player go left player.Left -= 3; } private void right_Tick(object sender, EventArgs e) { //this makes the player go right player.Left += 3; }

After creating the timers, you can create key up and key down events to handle the movement with keys -

private void yourFormName_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.W) { \this starts the timer to go up and if you press the W key then the player goes up up.Start(); } if (e.KeyCode == Keys.S) { \this starts the timer to go down and if you press the S key then the player goes down down.Start(); } if (e.KeyCode == Keys.D) { \this starts the timer to go right and if you press the D key then the player goes right right.Start(); } if (e.KeyCode == Keys.A) { \this starts the timer to go left and if you press the W key then the player goes left left.Start(); } }

Hope this helped!