无法使移动图片框停在特定点
cannot make a moving picturebox stop at a specific point
我必须创建一个交通模拟器,我想在交通信号灯不是红色时移动汽车(图片框),并在交通信号灯为红色时让它停下来。
红绿灯是 3 个改变颜色的面板。
我的问题是我的车在遇到红灯时没有停下来。我试过 "pictureBox.Location.X" 和 "pictureBox.Left" 但它不起作用,图片框继续移动。
我也试过在汽车遇到交通信号灯时抛出一个消息框,只是为了看看 "pictureBox.Location.X" 是否在工作,但仍然没有。好像不识别这个函数
我试过用面板和图片框制作交通灯,但还是一样。
下面我把我的代码发给你:
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;
}
}
您使用 &.
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)
我认为在 c# 中对于逻辑 "AND" ypu 可以同时使用 & 和 &&。通过将像素移动从 += 20 更改为 += 3 解决了这个问题,所以我认为我的图片框不会满足我设置为停止点的点,因为它移动了 20 20 像素。
我必须创建一个交通模拟器,我想在交通信号灯不是红色时移动汽车(图片框),并在交通信号灯为红色时让它停下来。 红绿灯是 3 个改变颜色的面板。
我的问题是我的车在遇到红灯时没有停下来。我试过 "pictureBox.Location.X" 和 "pictureBox.Left" 但它不起作用,图片框继续移动。 我也试过在汽车遇到交通信号灯时抛出一个消息框,只是为了看看 "pictureBox.Location.X" 是否在工作,但仍然没有。好像不识别这个函数
我试过用面板和图片框制作交通灯,但还是一样。
下面我把我的代码发给你:
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;
}
}
您使用 &.
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)
我认为在 c# 中对于逻辑 "AND" ypu 可以同时使用 & 和 &&。通过将像素移动从 += 20 更改为 += 3 解决了这个问题,所以我认为我的图片框不会满足我设置为停止点的点,因为它移动了 20 20 像素。