Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void timer1_Tick(object sender, EventArgs e)
- {
- pictureBox1.Invalidate();
- }
- void pictureBox1_Invalidate(EventArgs e)
- {
- var g = e.graphics;
- foreach (Auto a in Auta)
- {
- var x,y,rotation;
- //Nacteme pouze hodnoty, abychom netravili zbytecne moc casu v locku
- lock (a)
- {
- x,y,rotation = a;
- }
- //Vykreslime auto podle hodnot
- //g.rotate(rotation)
- //g.drawRect(x-10, y-15, 20, 30)
- //g.rotate(-rotation)
- renderCar(g,x,y,rotation);
- }
- }
- Map map;
- class Car
- {
- Car()
- {
- new Thread(() =>
- {
- while(true)
- {
- Thread.Sleep();
- var x,y,rotation,speed;
- //Nacteme pouze hodnoty, abychom netravili zbytecne moc casu v locku
- lock (this)
- {
- x,y,rotation,speed = this;
- }
- //nepredpokladame zmenu mapy za chodu (museli bychom delat jeji kopii a ne jen referenci)
- x,y,rotation = static.PerformStepOnMap(x,y,rotation,speed,map);
- //Navraceni hodnot
- lock (this)
- {
- this = x,y,rotation;
- }
- }
- }).Start();
- }
- var x,y,rotation,speed;
- //Neresime dalsi krok cesty, ale jeji cil (krok se resi v PerformStepOnMap
- var pathTarget;
- static void PerformStepOnMap();
- }
- //Neresime ostatni auta = muzeme jimi projizdet
- //Neresime zpomalovani (i kdyz muzeme)
- //na predavani x,y,rotation se hodi struktura (nepredavame referenci, ale hodnotu coz potrebujeme - resp. je to vyhoda (i kdyz budeme vytvaret novou))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement