int xstart = -1, ystart = -1; // координаты стартовой и конечной точки #endregion Fields #region Constructors public Form1() { InitializeComponent(); timer = new System.Windows.Forms.Timer(); timer.Interval = time; //интервал между срабатываниями 500 миллисекунд timer.Tick += new EventHandler(trainmove); //подписываемся на события Tick for (int i = 0; i < kol; i++) { for (int j = 0; j < kol; j++) { map[i, j] = new bars(i * wid+wid/2, j * wid+wid/2, wid); map[i, j].i = i; map[i, j].j = j; //задаю провинции и рисую if (i < (kol / 2 + 1) && j < kol / 2) map[i, j].PrID = 1; if (i > kol / 2 && j < (kol / 2 + 1)) map[i, j].PrID = 2; if (i < (kol / 2 + 1) && j > (kol / 2 - 1)) map[i, j].PrID = 3; if (i > kol / 2 && j > kol / 2) map[i, j].PrID = 4; } } }
private void Form1_MouseClick(object sender, MouseEventArgs c) { int da, db, dc, dr; bool if (c.Button == MouseButtons.Left && moving == false) { for (int i = 0; i < kol; i++) { for (int j = 0; j < kol; j++) { map[i, j].start = false; map[i, j].path.Clear(); map[i, j].val = 10000000; map[i, j].onway = false; da = map[i, j].x1 - wid / 2; db = map[i, j].y1 - wid / 2; dc = map[i, j].x1 + wid / 2; dr = map[i, j].y1 + wid / 2; if (c.X <= dc && c.Y >= db && c.X > da && c.Y < dr && map[i, j].confirm_road) { if(current != null) map[current.i, current.j].current = false; map[i, j].current = true; current = map[i, j]; } } } } if (c.Button == MouseButtons.Right && mode == emode.m_set_train_end) { for (int i = 0; i < kol; i++) { for (int j = 0; j < kol; j++) { map[i, j].start = false; map[i, j].path.Clear(); map[i, j].val = 10000000; map[i, j].onway = false; da = map[i, j].x1 - wid / 2; db = map[i, j].y1 - wid / 2; dc = map[i, j].x1 + wid / 2; dr = map[i, j].y1 + wid / 2; if (c.X <= dc && c.Y >= db && c.X > da && c.Y < dr && map[i, j].confirm_road) { cur_train.xfin = i; cur_train.yfin = j; bool tw = FindTrainWay(cur_train); if (tw == true) { cur_train.moving = true; Ltrains.Add(cur_train); mode = emode.m_normal; } } } } } }