Пример #1
0
        /// <summary>
        /// Wybór jednej z zapisanych gier
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gameStatesList_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.Visible = false;
            //load game

            int index_in_xml = gameStatesList.SelectedIndex;
            // 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, ((MenuForm)Parent).player.Name);
            MenuForm form = (MenuForm)Parent;

            ((MenuForm)Parent).game_panel.Visible = true;
            this.Visible = false;
            //kliknięcie nowej gry w trakcie pauzy kończy dotychczasowa grę i uruchamia nową instancję
            if (((MenuForm)Parent).GamePause)
            {
                form.gameInstance.LoadSavedGame(saved_data, index_in_xml);
            }
            else
            {
                form.player = new Player(form.player.Name);
                form.gameInstance.SavedGame(form.player, saved_data, index_in_xml);

                // Thread thread = new Thread(new ThreadStart(form.gameInstance.Run));
                // thread.Start();
            }
            ((MenuForm)Parent).game_panel.GraphicsContainer.Focus();
        }
Пример #2
0
 /// <summary>
 /// Wypelnienie ListBox-a ze stanami gry do wyboru
 /// </summary>
 /// <param name="player_data">Dane pobrane z pliku XML z zapisanymi stanami gry</param>
 public void InitializeGameStatesList(GameState.GameStateData player_data)
 {
     for (int i = 0; i < player_data.Count; i++)
     {
         gameStatesList.Items.Add(player_data.Date[i]);
     }
 }
Пример #3
0
        /// <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.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.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]);
        }
Пример #4
0
 /// <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();
     if (!player.AudioSettings.IsMuted)
     {
         MediaPlayer.Volume = (float)player.AudioSettings.MusicVolume;
     }
     else
     {
         MediaPlayer.Volume = 0;
     }
     IsPaused = false;
 }
Пример #5
0
        /***************** LOGIN PANEL **********************/

        /// <summary>
        /// Obsługa kliknięcia przycisku logowania
        /// automatycznie player jest rejestrowany
        /// (co oznacza ze przy pierwszym logowaniu tworzone są pliki ustawień dla danego gracza)
        /// </summary>
        /// <param name="sender">przycisk wysyłający sygnał logowania</param>
        /// <param name="e"></param>
        private void loginButton_Click(object sender, EventArgs e)
        {
            player = new Game.Player(usernameTextBox.Text);
            activePanel.Visible = false;
            main_panel.Visible  = true;

            //jesli gracz ma zapisane jakies stany gry to odblokuj przycisk ładowania na głownym menu
            IAsyncResult result = StorageDevice.BeginShowSelector(PlayerIndex.One, null, null);

            GameState.GameStateData saved_data = GameState.LoadGameState(result, player.Name);
            if (saved_data.Count == 0)
            {
                //Pierwsze uruchomienie gry ( brak listy najlepszych wynikow dla danego poziomu)
                main_panel.EnableLoadButton(false);
            }
            else
            {
                main_panel.EnableLoadButton(true);
                load_game_panel.InitializeGameStatesList(saved_data);
            }
            SaveOrLoadSettings();
        }
Пример #6
0
 /// <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;
 }