/// <summary> /// Zapis stanu gry do pliku zwi¹zanego z aktualnym graczem /// </summary> public void SaveGameState() { // Create the data to save IAsyncResult result = StorageDevice.BeginShowSelector(PlayerIndex.One, null, null); //za³adowanie pliku z wynikami dla odpowiedniego poziomu GameState.GameStateData saved_data = GameState.LoadGameState(result, player.Name); GameState.GameStateData new_saved_data = new GameState.GameStateData(saved_data.Count + 1, game_map.getWidth(), game_map.getHeight()); for (int i = 0; i < saved_data.Count; i++) { new_saved_data.Date[i] = saved_data.Date[i]; new_saved_data.Dynamites[i] = saved_data.Dynamites[i]; new_saved_data.Rackets[i] = saved_data.Rackets[i]; new_saved_data.Points[i] = saved_data.Points[i]; new_saved_data.Levels[i] = saved_data.Levels[i]; new_saved_data.TotalMinutes[i] = saved_data.TotalMinutes[i]; new_saved_data.TotalSeconds[i] = saved_data.TotalSeconds[i]; new_saved_data.Intelligence[i] = saved_data.Intelligence[i]; new_saved_data.GameMaps[i] = saved_data.GameMaps[i]; } new_saved_data.Date[new_saved_data.Count - 1] = System.DateTime.Now.ToString(); new_saved_data.Dynamites[new_saved_data.Count - 1] = player.Dynamite; new_saved_data.Rackets[new_saved_data.Count - 1] = player.Rackets; new_saved_data.Points[new_saved_data.Count - 1] = player.Points; new_saved_data.Levels[new_saved_data.Count - 1] = game_map.gameLevel; new_saved_data.TotalMinutes[new_saved_data.Count - 1] = totalMinutes; new_saved_data.TotalSeconds[new_saved_data.Count - 1] = totalSeconds; new_saved_data.Intelligence[new_saved_data.Count - 1] = player.IntelligenceLevel; new_saved_data.GameMaps[new_saved_data.Count - 1] = game_map.getIntMap(); GameState.gameStateToSave = new_saved_data; GameState.SaveToDevice(result, player.Name); Form.load_game_panel.updateListItems(new_saved_data.Date[new_saved_data.Count - 1]); }
/// <summary> /// Konstruktor ³aduj¹cy zapisan¹ grê /// </summary> /// <param name="form"> WskaŸnik do okna gry</param> /// <param name="player">Instancja gracza</param> /// <param name="game_state_data_to_load">Dane stany gry do ³adowania</param> /// <param name="data_index">Indeks danych w tablicy stanów gry</param> public Game(DungeonVandal.MenuForm form, Player player, GameState.GameStateData game_state_data_to_load, int data_index) { Form = form; graphics = new GraphicsDeviceManager(this) { PreferredBackBufferWidth = Form.ViewportSize.Width, PreferredBackBufferHeight = Form.ViewportSize.Height }; data_to_load = game_state_data_to_load; this.data_index = data_index; this.player = player; this.player.Dynamite = data_to_load.Dynamites[data_index]; this.player.Points = data_to_load.Points[data_index]; this.player.Rackets = data_to_load.Rackets[data_index]; totalMinutes = data_to_load.TotalMinutes[data_index]; totalSeconds = data_to_load.TotalSeconds[data_index]; Form.setPlayerName(player.Name); graphics.PreparingDeviceSettings += graphics_PreparingDeviceSettings; System.Windows.Forms.Control.FromHandle(Window.Handle).VisibleChanged += MainGame_VisibleChanged; System.Windows.Forms.Control.FromHandle(Form.Handle).KeyUp += new System.Windows.Forms.KeyEventHandler(Game_KeyUp); System.Windows.Forms.Control.FromHandle(Form.Handle).KeyPress += new System.Windows.Forms.KeyPressEventHandler(Game_KeyPress); System.Windows.Forms.Control.FromHandle(Form.Handle).KeyDown += new System.Windows.Forms.KeyEventHandler(Game_Key); System.Windows.Forms.Control.FromHandle(Form.Handle).PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(Game_PreviewKeyDown); Content.RootDirectory = "Content"; IsMouseVisible = true; }
/// <summary> /// Podmiana gry na zapisan¹ instancjê /// </summary> /// <param name="game_state_data_to_load">Dane zapisanej gry</param> /// <param name="data_index">Indeks zapisanej gry</param> public void LoadSavedGame(GameState.GameStateData game_state_data_to_load, int data_index) { data_to_load = game_state_data_to_load; this.data_index = data_index; this.player.Dynamite = data_to_load.Dynamites[data_index]; this.player.Points = data_to_load.Points[data_index]; this.player.Rackets = data_to_load.Rackets[data_index]; totalMinutes = data_to_load.TotalMinutes[data_index]; totalSeconds = data_to_load.TotalSeconds[data_index]; game_map = new Map.Map(tile_size, map_width, map_height, data_to_load.GameMaps[data_index], this.Content, player); MediaPlayer.Resume(); MediaPlayer.Volume = (float)player.AudioSettings.MusicVolume; IsPaused = false; }
/// <summary> /// Konstruktor �aduj�cy zapisan� gr� /// </summary> /// <param name="player">Instancja gracza</param> /// <param name="game_state_data_to_load">Dane stany gry do �adowania</param> /// <param name="data_index">Indeks danych w tablicy stan�w gry</param> public void SavedGame(Player player, GameState.GameStateData game_state_data_to_load, int data_index) { this.player = player; data_to_load = game_state_data_to_load; if (data_to_load.Count != 0) game_map = new Map.Map(tile_size, map_width, map_height, data_to_load.GameMaps[data_index], this.Content, player); music = Content.Load<Song>("Audio\\background_music"); MediaPlayer.IsRepeating = true; MediaPlayer.Play(music); if (!player.AudioSettings.IsMuted) MediaPlayer.Volume = (float)player.AudioSettings.MusicVolume; else MediaPlayer.Volume = 0; MediaPlayer.Volume = (float)player.AudioSettings.MusicVolume; this.data_index = data_index; this.player.Dynamite = data_to_load.Dynamites[data_index]; this.player.Points = data_to_load.Points[data_index]; this.player.Rackets = data_to_load.Rackets[data_index]; totalMinutes = data_to_load.TotalMinutes[data_index]; totalSeconds = data_to_load.TotalSeconds[data_index]; Form.Invoke(new Action(() => Form.game_panel.playerName.Text = player.Name)); graphics.PreparingDeviceSettings += graphics_PreparingDeviceSettings; System.Windows.Forms.Control.FromHandle(Window.Handle).VisibleChanged += MainGame_VisibleChanged; System.Windows.Forms.Control.FromHandle(Form.Handle).KeyUp += new System.Windows.Forms.KeyEventHandler(Game_KeyUp); System.Windows.Forms.Control.FromHandle(Form.Handle).KeyPress += new System.Windows.Forms.KeyPressEventHandler(Game_KeyPress); System.Windows.Forms.Control.FromHandle(Form.Handle).KeyDown += new System.Windows.Forms.KeyEventHandler(Game_Key); System.Windows.Forms.Control.FromHandle(Form.Handle).PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(Game_PreviewKeyDown); IsMouseVisible = true; isStarted = true; }