Advertisement
AbitDeveloper

C# auta navrh

May 8th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1.  
  2. private void timer1_Tick(object sender, EventArgs e)
  3. {
  4. pictureBox1.Invalidate();
  5. }
  6.  
  7. void pictureBox1_Invalidate(EventArgs e)
  8. {
  9. var g = e.graphics;
  10.  
  11. foreach (Auto a in Auta)
  12. {
  13. var x,y,rotation;
  14.  
  15. //Nacteme pouze hodnoty, abychom netravili zbytecne moc casu v locku
  16. lock (a)
  17. {
  18. x,y,rotation = a;
  19. }
  20.  
  21. //Vykreslime auto podle hodnot
  22. //g.rotate(rotation)
  23. //g.drawRect(x-10, y-15, 20, 30)
  24. //g.rotate(-rotation)
  25. renderCar(g,x,y,rotation);
  26. }
  27. }
  28.  
  29. Map map;
  30.  
  31. class Car
  32. {
  33. Car()
  34. {
  35. new Thread(() =>
  36. {
  37. while(true)
  38. {
  39. Thread.Sleep();
  40.  
  41. var x,y,rotation,speed;
  42.  
  43. //Nacteme pouze hodnoty, abychom netravili zbytecne moc casu v locku
  44. lock (this)
  45. {
  46. x,y,rotation,speed = this;
  47. }
  48.  
  49. //nepredpokladame zmenu mapy za chodu (museli bychom delat jeji kopii a ne jen referenci)
  50. x,y,rotation = static.PerformStepOnMap(x,y,rotation,speed,map);
  51.  
  52. //Navraceni hodnot
  53. lock (this)
  54. {
  55. this = x,y,rotation;
  56. }
  57. }
  58. }).Start();
  59. }
  60.  
  61. var x,y,rotation,speed;
  62. //Neresime dalsi krok cesty, ale jeji cil (krok se resi v PerformStepOnMap
  63. var pathTarget;
  64.  
  65. static void PerformStepOnMap();
  66. }
  67.  
  68. //Neresime ostatni auta = muzeme jimi projizdet
  69. //Neresime zpomalovani (i kdyz muzeme)
  70. //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