我必须创建一个交通模拟器,我想在红绿灯不是红灯的时候移动一辆车(picturebox),当红灯亮的时候让它停在红绿灯的地方。红绿灯是3个变色的面板。
我的问题是我的车在遇到红灯时不停下来。我试过"pictureBox.Location.X“和"pictureBox.Left”,但它就是不工作,pictureBox只是继续移动。我还试过在汽车遇到红绿灯时抛出一个messageBox,看看"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;
}
}发布于 2017-12-22 13:10:23
您可以使用&。
else if (car1.Location.X == panelGreen.Location.X & panelRed.BackColor == Color.Red)我已经heard,这可能会导致意外的行为。您的意思是使用逻辑上的“与”(&&)吗?
else if (car1.Location.X == panelGreen.Location.X && panelRed.BackColor == Color.Red)发布于 2017-12-27 23:01:24
我认为在c#中,对于逻辑上的" and“,ypu可以使用&和&&。这个问题已通过将像素移动从+= 20更改为+= 3修复,因此我认为我的picturebox不会达到我设置为停止点的点,因为它移动了20 20像素。
https://stackoverflow.com/questions/47933128
复制相似问题