Visual Studio C中的PictureBox越野车运动#

时间:2016-06-10 18:53:56

标签: c# animation timer picturebox

问题

我有PictureBoxes,我希望它们移动。我让他们使用计时器移动。我可以让它们移动,但每次移动像素时,它们都会在之前的位置留下白色背景。移动时,它们会使我的TextBox闪烁。

它的外观如下:https://gyazo.com/cdd17b0e88a86b4dec115ceff41b44c5

请不要过分关注我糟糕的油漆技巧

代码

 public partial class Form1 : Form
{

    int timeTicker;
    int timeMin;
    int timeSec;

    public Form1()
    {
        InitializeComponent();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        timeTicker++;

        Timer(timeTicker);

        //playerPics is a PictureBox array that has all the images stored
        TopMovement(playerPics[0],timeTicker);
    }

    private void Timer(int secs)
    {
        timeSec = secs;
        if(secs == 60)
        {
            timeMin += 1;
            timeTicker = 0;
        }
        tbxTimer.Text = "Time: " + timeMin + ":" + timeSec;
    }

    private void TopMovment(PictureBox top, int time)
    {
        int y = (int)(time * 1.7);
        int x = (int)(time * 0.3);

        if (time < 22 && timeMin < 1)
        {
            top.Top -= y;
            top.Left += x;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

尝试将DoubleBuffered = true;放入构造函数中。此外,计时器永远不是移动图形的好方法。它总是会跳过一个勾号,对你正在尝试做的事情并不是很有用。我刚才写了这个,看看吧。它不是完美的,但比使用计时器更好很多http://pastebin.com/9P77eaAU