Moja formatka to tak jakby symulacja przejazdu kolejowego - mamy pociąg i autka, które zatrzymują się na sygnalizacji gdy pociąg jedzie. Do pełni szczęścia brakuje mi by autka przed przejazdem zatrzymywały się w równych odległościach - w chwili obecnej najeżdżają na siebie. Próbowałem to zrobić przez Offset punktu lokalizacyjnego itp. ale ni w ząb nic nie działa, może ktoś coś podsunie. Możliwe że coś z blokadą wątku jest nie tak.
private void wykonajWatek1(object state)
{
bool gotIt = false;
WatekInfo info = state as WatekInfo;
lock (blokada)
{
if (autoa[licznik] == false)
{
gotIt = true;
}
}
if (gotIt == true)
{
for (int i = 0; i < 175; i++) //odleglosc na jaka samochod sie porusza
{
if (p == 0) //p reguluje semafor 0 - brak swiatel, 1 - czerwone
{
this.Invoke((MethodInvoker)delegate
{
info.Auto.Location = new Point(info.Auto.Location.X, info.Auto.Location.Y + 3); //zmiana polozenia samochodu
this.Refresh();
});
}
else if ((p == 1 && (info.Auto.Location.Y < 225 || info.Auto.Location.Y > 235))) //obszar niebezpieczny dla samochodu gdy przejezdza pociag, przed tym polem samochody zatrzymuja sie
{
this.Invoke((MethodInvoker)delegate
{
info.Auto.Top += 3; //przyspieszenie samochodu gdy znajdzie sie w niebezpiecznym polu
});
}
else
{
do
{
} while ((p == 1));
}
Thread.Sleep(50);
}
lock (blokada)
{
// autoa[licznik - 1] = true;
//info.Auto.Top += 13;
}
}
}