как заставить объект двигаться вверх, вниз, влево и вправо с помощью цикла в Visual Studio с помощью C # - PullRequest
0 голосов
/ 31 мая 2011

я могу сделать изображение в графическом окне перемещаться вправо и вниз с помощью цикла for, вот как выглядит мой код.

private void xAnimeTimer_Tick(object sender, EventArgs e)
    {
        int count;


        this.xAnimeTimer.Stop();



        //   start point   end point   speed
        for (count = 0; count <= 1350; count+=2)
        {
            this.xAnimePictureBox.Left = count;


        }

        for (count = 0; count <= 810; count += 2)
        {
            this.xAnimePictureBox.Top = count;


        }

Я не могу понять, как заставить изображение двигаться вверхи влево я могу заставить его двигаться только вправо и вниз.

Ответы [ 3 ]

0 голосов
/ 31 мая 2011

Инвертируйте то, что у вас есть:

   this.xAnimeTimer.Stop();



    //   start point   end point   speed
    for (count = 1350; count >= 0; count-=2)
    {
        this.xAnimePictureBox.Left = count;


    }

    for (count = 810; count >= 0; count -= 2)
    {
        this.xAnimePictureBox.Top = count;


    }
0 голосов
/ 31 мая 2011

Исходная точка (0, 0) для экранной графики - это верхний левый угол области рисования. Таким образом, меньшие значения Top будут перемещать элемент вверх по экрану до тех пор, пока вы не достигнете 0, а затем элемент сместится с верхней части экрана. Меньшие значения слева с другой стороны переместят элемент влево.

0 голосов
/ 31 мая 2011

Ваш this.xAnimePictureBox уже находится в центре?Если это так, отрицание ваших подсчетов даст вам зеркальные направления (справа вниз, слева вверху).

Если это не так, переместите ваш this.xAnimePictureBox в центр и отмените .Top и .Left.

С помощью центра я предполагаю, что ваш 1350 - это ширина, а 810 - это высота?тогда центр будет 1350/2, 810/2, а для сопряжения центра вашей фотобоксы с центром холста (или чем-то, что удерживает PictureBox) будет слева = 1350/2 - (pictureBox.Width / 2),Top = 810/2 - (изображение Box.Height / 2).

...