无法使移动的图片框停在特定点

时间:2017-12-21 21:44:54

标签: c# picturebox simulator traffic

我必须创建一个交通模拟器,我想在交通信号灯不是红色的情况下移动一辆汽车(图片框),并在红绿灯处停在红绿灯处。 红绿灯是3个改变颜色的面板。

我的问题是我的车在遇到红色交通信号灯时没有停下来。我试过" pictureBox.Location.X"和#34; pictureBox.Left"但它只是不起作用,pictureBox继续前进。 当汽车遇到红绿灯时,我也试过抛出一个messageBox,看看是否有" pictureBox.Location.X"工作但仍然没有。好像它不能识别这个功能。

我试图用面板和图片框制作交通灯,但仍然是相同的。

Bellow我发送给你的代码到目前为止:

    private void timerCar1_Tick(object sender, EventArgs e)
            {
                //timerCar2.Enabled = true;

                if(panelRed.BackColor == Color.Red)
                {
                    car1.Left -= 5;
                }                
 /* ---> */     else if (car1.Location.X == panelGreen.Location.X & panelRed.BackColor == Color.Red)
                {
                    car1.Left -= 0;
                }
                else if (panelGreen.BackColor == Color.Green)
                {
                    car1.Left -= 20;
                }
                else if (panelOrange.BackColor == Color.Orange)
                {
                    car1.Left -= 10;
                }

            }

2 个答案:

答案 0 :(得分:0)

你使用&。

 else if (car1.Location.X == panelGreen.Location.X & panelRed.BackColor == Color.Red)

heard这会导致意外行为。你的意思是使用逻辑" AND" (安培;&安培)?

 else if (car1.Location.X == panelGreen.Location.X && panelRed.BackColor == Color.Red)

答案 1 :(得分:0)

我认为在c#中对于逻辑" AND" ypu可以同时使用&和&&问题是通过将像素移动从+ = 20更改为+ = 3来解决的,所以我认为我的图片框不符合我设置为停止点的点,因为它移动了20个20像素。