public Mundo(RenderWindow window, View view) { /* Inicializa um Mundo */ this.window = window; this.view = view; GerenciadorEnt = new GerenciadorEntidades(window, view); auxVec = new Vector2f(); MusicaAux = null; musicas = new List <Musica>(); EscadaAux1 = null; EscadaAux2 = null; }
public void CarregarMundo(GerenciadorEntidades ger) { /* Carrega um mundo a partir de um arquivo binário * Não carrega mecanismos, escadas, armadilhas, músicas, diálogos e eventos */ string path = ""; // Cria uma janela de carregamento OpenFileDialog openFileDialog = new OpenFileDialog { InitialDirectory = @"C:\", Title = "Carregar Mundo", CheckFileExists = true, CheckPathExists = true, DefaultExt = "aql", RestoreDirectory = true, // Define que o arquivo carregado terá a extensão 'aql' (Alveric's Quest Level) Filter = "aql files (*.aql)|*.aql", }; // Abre a janela de carregamento, se o botão 'OK' for pressionado 'path' recebe o caminho para o arquivo if (openFileDialog.ShowDialog() == DialogResult.OK) { path = openFileDialog.FileName; } if (path != "") { try { // Limpa o mundo atual ger.LimparListas(); using FileStream input = File.OpenRead(path); // Abre um arquivo binário e restaura um mundo com suas informações using (BinaryReader reader = new BinaryReader(input)) { // Recebe a quandiade de elementos extistentes em cada lista int etCount = reader.ReadInt32(); int eiCount = reader.ReadInt32(); int mecCount = reader.ReadInt32(); int armCount = reader.ReadInt32(); int escCount = reader.ReadInt32(); // Recria as entidades tangíeis salvas for (int i = 0; i < etCount; i++) { ger.InserirEntidade(reader.ReadSingle(), reader.ReadSingle(), reader.ReadInt32(), reader.ReadInt32()); } // Recria as entidades intangíeis salvas for (int i = 0; i < eiCount; i++) { ger.InserirEntidade(reader.ReadSingle(), reader.ReadSingle(), reader.ReadInt32(), reader.ReadInt32()); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } } }