/// <summary> /// Nawiazywanie polaczenia z serwerem /// </summary> /// <param name="ip"></param> /// <param name="port"></param> private void DoConnection(string ip, int port) { try { _tmp = true; clientSocket = new TcpClient(); clientSocket.Connect(ip, port); //clientSocket.Connect("127.0.0.1", port); } catch (SocketException e) { Console.WriteLine("s"); _tmp = false; var messageBoxResult = WpfMessageBox.Show("Error", "Connection problem ... Check the IP address.", MessageBoxButton.OK, WpfMessageBox.MessageBoxImage.Error); Console.WriteLine("SocketException: {0}", e); } catch (Exception e) { Console.WriteLine("Exception: {0}", e); } if (_tmp == true) { Console.WriteLine("b"); Menu.MenuMusic.Stop(); Window.GetWindow(this).Content = new GamePlay(); } }
// KOLIZJE: // W przypadku kolizji sprawdzamy tryb gry (single/multi) i odpowiednio zarzadzamy HP oraz konczymy gre // w przypadku utraty wszystkich zyc: /// <summary> /// Wykrywanie kolizji /// </summary> void LifeVsCollision() { _lifes--; if (PlayerData.MultiOnOff == true && _gameMode == 0) { Rectangle a = (Rectangle)PlayerData.Item.Items[_indexOfHearts]; a.Opacity = 0; _indexOfHearts--; } if (_lifes > 0) { snake = new Snake(100, 100); _directionX = 10; _directionY = 0; InitSnake(); Thread.Sleep(1000); } if (_lifes == 0) { Timer.Stop(); GameMusic.Stop(); var messageBoxResult = WpfMessageBox.Show("Game Over", "Your result is: " + _score.ToString(), MessageBoxButton.YesNo, WpfMessageBox.MessageBoxImage.GameOver); } }
/// <summary> /// Interakcja - ladowanie okna + zdarzenia (sygnaly od wciskanych przyciskow) /// </summary> private void UserControl_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Up && _directionY != 10) { _directionX = 0; _directionY = -10; } if (e.Key == Key.Down && _directionY != -10) { _directionX = 0; _directionY = 10; } if (e.Key == Key.Left && _directionX != 10) { _directionX = -10; _directionY = 0; } if (e.Key == Key.Right && _directionX != -10) { _directionX = 10; _directionY = 0; } if (e.Key == Key.P) { Timer.Stop(); GameMusic.Pause(); var messageBoxResult = WpfMessageBox.Show("Pause!", "Game paused", MessageBoxButton.OKCancel, WpfMessageBox.MessageBoxImage.Pause); } // ten if jest dla testow: if (e.Key == Key.G) { _tmpForTest = true; } }
/// <summary> /// Kolizja miedzy wezami /// </summary> void KilledBySnake() { Timer.Stop(); GameMusic.Stop(); SendDataToServer("?"); serverStream.Close(); Multi.clientSocket.Close(); var messageBoxResult = WpfMessageBox.Show("Game Over", "Your result is: " + _score.ToString(), MessageBoxButton.YesNoCancel, WpfMessageBox.MessageBoxImage.GameOver); _isKilled = true; }
/// <summary> /// Sprawdzenie poprawnosci wpisywanych znakow adresu ip /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CheckSpell(object sender, KeyEventArgs e) { if ((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.Back || (e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.OemPeriod || e.Key == Key.Enter) { e.Handled = false; } else { e.Handled = true; var messageBoxResult = WpfMessageBox.Show("Warning", "Invalid symbol", MessageBoxButton.OK, WpfMessageBox.MessageBoxImage.Warning); } }
/// <summary> /// Wykrywanie kolozji w trybie multi /// </summary> void LifeVsCollisionMulti() { _lifes--; if (_lifes == 0) { Timer.Stop(); GameMusic.Stop(); SendDataToServer("!"); // Wysylamy info o kolizji ze sciana lub samym soba serverStream.Close(); Multi.clientSocket.Close(); var messageBoxResult = WpfMessageBox.Show("Game Over", "Your result is: " + _score.ToString(), MessageBoxButton.YesNoCancel, WpfMessageBox.MessageBoxImage.GameOver); _isKilled = true; } }