[Tradução] Arquivos INI

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Tradução] Arquivos INI

Mensagem por y_Tiago em Sab 24 Set 2011, 22:51

Nome: Arquivos INI
Descrição:Tradução de um tutorial bem útil.Link
Nível de dificuldade: Iniciante
Requerimentos: GM 6/7/8 - Pro/Lite

Arquivos INI

Você deve estar se perguntando o que são arquivos INI. Bem, simplificadamente, esses arquivos são uteis para guardar informações essenciais dos jogos em um formato simples. Os arquivos INI são bem simples de ser usados e programadores de verdade os usam, incluindo empresas como a Microsoft. Então, porque quero eu fazer os programadores iniciantes entender oque são esses arquivos? Honestamente, que tipo de jogo é um jogo se não salva nem carrega jogos? Você pode até usar a função game_save() e game_load(), mas esses salvam apenas informações básicas e geralmente falando salvam um monte de coisas inúteis. De outro lado, os arquivos INI podem ser usados para salvar o que você quiser, como por exemplo, a vida do jogador, a posição dele na fase, qual fase ele está, quanto dinheiro ele tem, quantos inimigos restam na fase, etc. O uso de arquivos INI vai reduzir bastante a quantidade de dados que precisa ser salva e vai permitir a você, programador, ter o completo poder de decidir o que salvar e o que não salvar.

Os arquivos INI, geralmente, contém seções e chaves. Seções são essencialmente uma coleção de chaves. As chaves são as suas variáveis guardadas. Então com o que elas se parecem? Aqui vai um exemplo:

[Settings]
Volume=0.8
Mute=false
RoomSpeed=60
AutoSave=false

[SavedGame]


[Settings] e [SavedGame] são seções. O resto são as chaves. Por favor constate que em todos os casos, as chaves e seções são uma palavra única para evitar erros. Se você ainda está confuso, as chaves são as partes que vem antes do sinal de igual, portanto, "Volume" e "Mute" são chaves. O valor das chaves podem ser frases pois a chave pode assumir o valor de uma String.

Hm.. Entendi, você não se importa com o que são arquivos INI, só quer saber como usá-los no Game Maker, então vamos lá. Se você quiser conhecer as funções associadas com os arquivos INI é só olhar no arquivo de ajuda do Game Maker. Não quero mais gastar tempo definindo um INI, vamos então mostrar como usá-los. Aqui vai um exemplo:

ini_open("game_settings.ini"); //ini_open(string) onde a string é o nome do arquivo (precisa obrigatóriamente ser no formato *.ini)
ini_write_real("Settings","Volume",0.8); //ini_write_real(Seção,Chave,Valor)
ini_write_string("Settings","Mute","false"); //ini_write_string(Seção,Frase,Valor)
ini_write_real("Settings","RoomSpeed",60);
ini_write_string("Settings","AutoSave","false");
ini_close(); //Fecha o arquivo aberto, não se esqueça de fazer isso sempre!


Para abrir um INI usamos o ini_open(string). Uma vez aberto, podemos editá-lo do jeito que quisermos. Se o arquivo não existir, o Game Maker se dá o trabalho de criá-lo automaticamente. Para escrever valores reais ou números, usamos a função ini_write_real(Seção, Chave, Valor). Usamos o ini_write_string(Seção, Chave, Valor) para escrever strings. A Seção é a divisão na qual queremos escrever, a Chave é a variável que estamos atribuindo um valor, e o Valor, auto-explicativo, é o valor que daremos àquela variável. Btw, se uma seção ou chave não existe, ela é criada automaticamente quando usamos as funções ini_write_string() ou ini_write_real(). O exemplo mostrado agora pouco cria o seguinte no arquivo "game_settings.ini":

[Settings]
"Volume"=0.8
"Mute"=false
RoomSpeed=60
AutoSave=false


Tudo bem, agora sabemos escrever num INI, mas de que isso adianta se não sabemos ler o que escrevemos? Bem,, aqui vai um exemplo de como recuperar os dados:

ini_open("game_settings.ini");
Volume = ini_read_real("Settings","Volume",0); //ini_read_real(Seção, Chave, Valor Padrão)
Mute = ini_read_string("Settings","Mute","true"); //ini_read_string(Seção, Chave, Valor Padrão)
room_speed = ini_read_real("Settings","RoomSpeed",30);
auto_save = ini_read_string("Settings","AutoSave","true");
ini_close();


Aqui é como as variáveis estarão após a leitura.

Volume = 0.8;
Mute = "false";
room_speed = 60;
auto_save = "false";


Ler os dados é bem parecido com escrever. A única diferença real é que temos um argumento padrão ao invés de um valor. Isso significa que se ele não conseguir ler o que você pediu, ele retornará esse valor padrão. Então, olhando de volta no código de leitura, se a chave "AutoSave" não existisse, a nossa variável auto_save assumiria o valor padrão que é "true".

Outros comandos para arquivos INI:
Código:
ini_key_exists("x","y") //Retorna true se a chave y existe na seção x.
ini_section_exists("x") //Retorna true se a seção x existe.
ini_key_delete("x","Y") //Deleta a chave y da seção x
ini_section_delete("x") //Deleta a seção x.
É isso pessoal, façam bom uso dessa maravilhosa forma de salvar configurações do jogo.
E qualquer dúvida perguntem.

y_Tiago

Número de Mensagens : 149
Idade : 19
Data de inscrição : 13/10/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tradução] Arquivos INI

Mensagem por Limalokão em Dom 25 Set 2011, 00:59

Cara, me falaram que arquivos ini são ruims, pois qualquer um pode abri-los e editar-los que nem a room_speed da pra mudar pra 30 por exemplo

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tradução] Arquivos INI

Mensagem por y_Tiago em Dom 25 Set 2011, 01:02

É por isso que maioria deles é usado para configurações de sistema, tipo as que estão ali, que não mexem nas coisas do jogo, tipo level, dinheiro, etc.
Ainda editável, não são ruins, pois o modo de trabalhar com elas no Game Maker é bem dinâmico e prático.

y_Tiago

Número de Mensagens : 149
Idade : 19
Data de inscrição : 13/10/2010
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Tradução] Arquivos INI

Mensagem por Conteúdo patrocinado Hoje à(s) 00:49


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum