private void El_MouseDown(object sender, MouseButtonEventArgs e) { if (m_Sost == sost.Set) { Line l2 = new Line(); if (!m_CanvasUnderWork.Children.Contains(l1)) { m_CanvasUnderWork.Children.Add(l1); } m_Sost = sost.Set1; iCurrentElement = (int)(sender as Ellipse).Tag; for (int i = m_CanvasUnderWork.Children.Count - 1; i >= 0; i--) { if (m_CanvasUnderWork.Children[i].GetType() == l2.GetType() && (int)((m_CanvasUnderWork.Children[i] as Line).Tag) == iCurrentElement) { m_CanvasUnderWork.Children.Remove(m_CanvasUnderWork.Children[i]); } } } else if (m_Sost == sost.Create) { m_Sost = sost.MoveUnit; iCurrentElement = (int)(sender as Ellipse).Tag; } }
private void canvas_MouseUp(object sender, MouseButtonEventArgs e) { if (m_Sost == sost.MoveUnit) { m_Sost = sost.Create; } }
private void Canvas_MouseDown(object sender, MouseButtonEventArgs e) { if (m_Sost == sost.Create && m_lUnitsUnderWork.Count < iCount) { button1.IsEnabled = true; Ellipse el = new Ellipse(); m_lUnitsUnderWork.Add(new Unit(Mouse.GetPosition(m_CanvasUnderWork).X, Mouse.GetPosition(m_CanvasUnderWork).Y, el)); m_CanvasUnderWork.Children.Add(el); if (m_CanvasUnderWork == canvas) { el.Fill = m_brushForOurUnit; } else { el.Fill = m_brushForEnemyUnit; } el.Stroke = Brushes.Green; el.MouseDown += El_MouseDown; el.Tag = m_lUnitsUnderWork.Count; Canvas.SetLeft(el, m_lUnitsUnderWork.Last().x - 20); Canvas.SetTop(el, m_lUnitsUnderWork.Last().y - 20); } else if (m_Sost == sost.Set1) { double x = Mouse.GetPosition(m_CanvasUnderWork).X; double y = Mouse.GetPosition(m_CanvasUnderWork).Y; if (m_lUnitsUnderWork[iCurrentElement].IsCheck(x, y)) { l1.Tag = iCurrentElement; m_lUnitsUnderWork[iCurrentElement].m_l1 = l1; m_lUnitsUnderWork[iCurrentElement].SetFirstR(x, y, bIsSetEnemy); l1 = new Line(); l1.Tag = -1; l1.Stroke = Brushes.Black; l1.StrokeThickness = 2; m_CanvasUnderWork.Children.Add(l1); m_Sost = sost.Set2; } } else if (m_Sost == sost.Set2) { double x = Mouse.GetPosition(m_CanvasUnderWork).X; double y = Mouse.GetPosition(m_CanvasUnderWork).Y; m_Sost = sost.Create; l1.Tag = iCurrentElement; m_lUnitsUnderWork[iCurrentElement].m_l2 = l1; m_lUnitsUnderWork[iCurrentElement].SetSecondR(x, y, bIsSetEnemy); l1 = new Line(); l1.Tag = -1; l1.Stroke = Brushes.Black; l1.StrokeThickness = 2; m_CanvasUnderWork.Children.Add(l1); button1.IsEnabled = true; if (IsUnitsSet()) { button.IsEnabled = true; } } }
private void vPrepare() { button1.IsEnabled = false; button.IsEnabled = false; if (bIsPC) { for (int i = 0; i < m_lMyunits.Count; i++) { m_lMyunits[i].vCorrect(true); m_lUnitsofEnemy[i].vCorrect(false); } } else { for (int i = 0; i < m_lMyunits.Count; i++) { double x, y; if (m_lMyunits[i].first_r > m_lMyunits[i].second_r) { double temp = m_lMyunits[i].first_r; m_lMyunits[i].first_r = m_lMyunits[i].second_r; m_lMyunits[i].second_r = temp; } m_lMyunits[i].vCorrect(true); Random rnd = new Random(); do { x = rnd.NextDouble() * canvasofenemies.Width; y = rnd.NextDouble() * canvasofenemies.Height; }while (!IsPlaceAvailable(x, y)); Ellipse el = new Ellipse(); canvasofenemies.Children.Add(el); el.Height = 40; if (bVisibility) { el.Visibility = Visibility.Visible; } else { el.Visibility = Visibility.Hidden; } el.Width = 40; el.StrokeThickness = 1; el.Fill = m_brushForEnemyUnit; el.Stroke = Brushes.Green; el.Tag = m_lUnitsofEnemy.Count; el.MouseLeftButtonDown += El_MouseLeftButtonDown; Canvas.SetLeft(el, x - 20); Canvas.SetTop(el, y - 20); m_lUnitsofEnemy.Add(new Unit(x, y, el)); m_lUnitsofEnemy.Last().first_r = rnd.NextDouble() * -Unit.dMaxAbsR; m_lUnitsofEnemy.Last().second_r = rnd.NextDouble() * Unit.dMaxAbsR; } } m_Sost = sost.Play; MessageBox.Show("Параметры углов выстрела немного скорректированы, чтобы снизить количество выстрелов, не попадающих по врагу"); m_timer.Start(); }
public MainWindow() { iLevel = 0; m_brushForOurUnit = new ImageBrush(new BitmapImage(new Uri("00.png", UriKind.Relative))); m_brushForEnemyUnit = new ImageBrush(new BitmapImage(new Uri("01.png", UriKind.Relative))); m_bClean = true; EnterCount ocr = new EnterCount(); InitializeComponent(); if (ocr.ShowDialog() == true) { bIsPC = (bool)ocr.checkBox1.IsChecked; if (bIsPC) { button.Content = "Настроить вражеские юниты"; } iCount = ocr.iCount; iOurArmor = iCount * 15; iArmorOfEnemy = iOurArmor; m_Sost = sost.Create; bVisibility = ocr.bVisibility; } else { Close(); } brush0.ImageSource = new BitmapImage(new Uri("pole1.jpg", UriKind.Relative)); brush1.ImageSource = new BitmapImage(new Uri("pole2.jpg", UriKind.Relative)); m_CanvasUnderWork = canvas; m_lUnitsUnderWork = m_lMyunits; // настройки подключения к Интернету if (bIsOnline) { var streamReader = new StreamReader("net_settings.dat"); string[] buffer = streamReader.ReadToEnd().Split(':'); streamReader.Close(); ipAddress = IPAddress.Parse(buffer[0]); iPort = int.Parse(buffer[1]); Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Client.Connect(ipAddress, iPort); } l1 = new Line(); l1.Tag = -1; l1.Stroke = Brushes.Black; l1.StrokeThickness = 2; m_timer = new System.Windows.Forms.Timer(); m_timer.Interval = 900; m_timer.Tick += M_timer_Tick; }
private void vReload() { canvas.MouseDown += Canvas_MouseDown; canvas.MouseMove += canvas_MouseMove; canvasofenemies.MouseDown -= Canvas_MouseDown; canvasofenemies.MouseMove -= canvas_MouseMove; canvas.Children.Clear(); canvasofenemies.Children.Clear(); m_brushForOurUnit.ImageSource = new BitmapImage(new Uri(iLevel.ToString() + "0.png", UriKind.Relative)); m_brushForEnemyUnit.ImageSource = new BitmapImage(new Uri(iLevel.ToString() + "1.png", UriKind.Relative)); brush0.ImageSource = new BitmapImage(new Uri(iLevel.ToString() + "1.jpg", UriKind.Relative)); brush1.ImageSource = new BitmapImage(new Uri(iLevel.ToString() + "2.jpg", UriKind.Relative)); m_lMyunits = new List <Unit>(); m_lUnitsofEnemy = new List <Unit>(); m_Sost = sost.Create; iOurArmor = iCount * 15; iArmorOfEnemy = iCount * 15; label1.Content = "Количество оружия: " + iOurArmor; label2.Content = "Количество оружия: " + iArmorOfEnemy; }
private void button_Click(object sender, RoutedEventArgs e) { if (bIsPC && bIsSetEnemy == false) { button.IsEnabled = false; button1.IsEnabled = false; button.Content = "Играть"; bIsSetEnemy = true; canvas.Children.Remove(l1); canvasofenemies.MouseDown += Canvas_MouseDown; canvasofenemies.MouseMove += canvas_MouseMove; canvas.MouseDown -= Canvas_MouseDown; canvas.MouseMove -= canvas_MouseMove; m_Sost = sost.Create; m_CanvasUnderWork = canvasofenemies; m_lUnitsUnderWork = m_lUnitsofEnemy; } else { vPrepare(); } }
private void button1_Click(object sender, RoutedEventArgs e) { button1.IsEnabled = false; m_Sost = sost.Set; }