2017-12-21 14 views
1

交通シミュレータを作成する必要があります。交通信号が赤ではない間に車(ピクチャボックス)を移動し、赤のときに停止したい交通信号。 信号は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; 
       } 

      } 
+0

あなたの問題に対して合理的であるよりも多くのコードを投稿したようです。 [ask]と[mcve]の作成方法をお読みください。MCVEを使用すると、ユーザーはあなたの質問に答えることができ、将来のユーザーはあなたの問題に関係します。 – rene

+0

コードのデバッグを学ぶ時間。ブレークポイントを設定し、変数を監視し、一度に1行ずつコードを実行し、実際に分岐する予定のコードを調べます。必要に応じて修正してください。また、[質問]を読んで[ツアー]をする過去の時間。 1つの信号機を走らせるのに3つのタイマーは必要ありません。 – Plutonix

+0

車両の移動や停止のアルゴリズムは 'timerCar1_Tick'メソッドのようです。したがって、あなたはあなたの質問から他のすべてのコードを削除し、説明することができます:** 1)**あなたがそのコードで何をしようとしているか** 2)** 'panelRed'などが何であるかを説明してください。その後、私たちはあなたを助けることができるでしょう。今、あなたはそのコードで何をしているのか分かりません。プラスコードの残りはちょうどノイズです。 – CodingYoshi

答えて

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) 
0

私はypuが&と& &の両方を使用することができますC#での論理のためだと思います "AND"。問題は、ピクセル移動を+ = 20から+ = 3に変更することで修正されたので、ピクチャボックスは停止ポイントとして設定されたポイントを20 20ピクセル移動しているために満たさないと思います。

関連する問題