Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
Aula 03 - Manipulando o arquivo.ini
+7
Arkd
PODEROS ARAN
paladini
Dancity
Denbs
Carlos Mahnke
Willy
11 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Aula 03 - Manipulando o arquivo.ini
Manipulando o arquivo.ini
Aula 03/03
Aula 03/03
Finalmente chegamos na parte interessante das aulas sobre arquivos.ini, agora você vai aprender como usar as funções aprendidas anteriormente. Antes de começar, crie um novo projeto e salve em algum lugar. Se você não sabe o que são INIs, significa que você pulou algumas aulas, seu danadinho... Se achar necessário, consulte a primeira aula e também a segunda aula.
Primeiro passo - Abrir/Criar um INI:
Sempre que formos trabalhar com um INI, a primeira coisa que devemos fazer é carregar/criar um. Para isso, usamos a função ini_open(“nome.ini”).
Usar esta função é muito simples, basta definirmos um nome e uma extensão desejada. Você pode colocar qualquer nome e qualquer extensão, pois o resultado vai ser o mesmo, como por exemplo, “NomeDoJogo.sav”. Note que, você sempre deve escrever entre aspas(""). Se você executar o jogo, você não encontrará o arquivo.ini que você criou. Mas por quê? Saberemos disso posteriormente...
Segundo Passo – Criando variáveis carregáveis.
Se você quisesse criar uma variável normal em um objeto, você procederia da seguinte forma:
Mas, se quisermos criar uma variável “carregável”, ou seja, que será carregado do ini, deveremos proceder de uma forma um pouco diferente.Create:
Variável=Valor
Como vimos na aula anterior, existem dois tipos de valor, a do tipo real e a do tipo string, então, sempre preste atenção quando for criar uma variável com INI. No caso acima, estamos definindo o valor da “Variável” através do arquivo.ini. Default é o valor inicial dele, ou seja:Create:
Variável=ini_read_real("Seção","Chave",Default)
Note que, quando nos referimos a uma seção ou a uma chave, sempre escrevemos entre aspas.Pontos=0
É o mesmo que:
Pontos=ini_read_real(“Progresso”,”Pontos”,0)
Terceiro Passo – Salvando o novo valor:
Agora que já sabemos como criar as variáveis, devemos saber como gravar os valores delas, para que depois, possamos iniciar o jogo com as variáveis do jeito que deixamos!
O procedimento é semelhante ao de carregar, fazemos da seguinte forma:
ini_write_real(“Progresso”,”Pontos”,Pontos)
O que fizemos acima é bem simples. Chamamos a função ini_write_real() e salvamos o valor de “Pontos” na chave “Pontos” pertencente a seção “Progresso”. Cuidado para não confundir a chave “Pontos” com a variável “Pontos”. Embora a escrita seja a mesma, uma não possui aspas, logo, é uma variável.
Agora que você salvou algo no INI, adivinha o que aconteceu? O arquivo que abrimos que, antes não existia agora existe, e está no mesmo lugar que a sua gmk! Seu arquivo.ini só será criado depois que você gravar algo nele. Agora você já sabe responder a pergunta do primeiro passo!
Pronto, isto é tudo o que você precisa saber para manipular dados de um arquivo.ini! As outras funções você raramente irá usar. A lógica é a mesma, basta informar qual chave/seção você gostaria de manipular. Por exemplo, para checar a existência de uma chave e exclui-la.
- Código:
if ini_key_exists(“Perfil”,”Nome”){ //Checa se a chave existe...
ini_key_delete(“Perfil”,”Nome”)//...e a deleta!
}
Espero que tenha gostado!
Última edição por Willy em Qua 13 Nov 2013, 16:49, editado 1 vez(es)
Re: Aula 03 - Manipulando o arquivo.ini
Muito legal a série Willy. Como sugestão, vc poderia ensinar a utilizar um sistema bem simplificado de criptografia pra usar com um save em ini, já que "puro" ele pode ser editado livremente pelo jogador.
(Sei que há uma gama de DLLs pra criptografia mas em casos onde não se faz necessário um simples sistema de "chaves" substituindo caracteres é perfeitamente funcional)
(Sei que há uma gama de DLLs pra criptografia mas em casos onde não se faz necessário um simples sistema de "chaves" substituindo caracteres é perfeitamente funcional)
Carlos Mahnke- Games Ranking :
Notas recebidas : A+B (não colocar conceito)
Data de inscrição : 27/07/2011
Reputação : 0
Número de Mensagens : 202
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Aula 03 - Manipulando o arquivo.ini
Cara, bom tutorial(ou aula), ta tudo bem explicado e agora sei como usar ini, tava esperando logo esse tuto ainda bem q vc postou logo^^
Denbs- Data de inscrição : 19/01/2011
Reputação : 0
Número de Mensagens : 204
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Aula 03 - Manipulando o arquivo.ini
Eu havia pensado em fazer isso também, mas acabei esquecendo...
Porém, já existe um tópico falando sobre isso (resposta do Kabeção).
Codificar e Descodificar INI
Se der tempo, talvez eu faça algo do tipo, mas ultimamente o tempo está meio corrido...
Porém, já existe um tópico falando sobre isso (resposta do Kabeção).
Codificar e Descodificar INI
Se der tempo, talvez eu faça algo do tipo, mas ultimamente o tempo está meio corrido...
Obrigado pelos comentários!
Re: Aula 03 - Manipulando o arquivo.ini
Muito bom, Willy. Explicou direitinho, passo-a-passo como se abre, carrega e se fecha um .ini, parabéns.
Gostaria de mais tutoriais como estes, são de ótima qualidade, e de grande ajuda ;D
Gostaria de mais tutoriais como estes, são de ótima qualidade, e de grande ajuda ;D
Dancity- Games Ranking :
Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1340
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: Aula 03 - Manipulando o arquivo.ini
Ei Willy, muito bom o tutorial, porém estou com um problema. Não sou nada bom em GML, mas tô tentando aprender, para isso criei uma engine bem simples pra aprender a usar os ini. Criei uma room, e um objeto.
Esse objeto tem um evento Create e tem o seguinte código (acho que está errado):
Quando executo o programa, ele cria o ini, e ele fica assim:
Porque ele não fica assim:
??
O que eu fiz de errado?
Valeu Willy, mto bom o seu tutorial!
Esse objeto tem um evento Create e tem o seguinte código (acho que está errado):
- Código:
ini_open("config.ini");
global.Option = ini_read_string("Config","Tela-cheia",0);
ini_write_string("Config","Tela-cheia",0)
Quando executo o programa, ele cria o ini, e ele fica assim:
- Código:
[Config]
Tela-cheia=
Porque ele não fica assim:
- Código:
[Config]
Tela-cheia=0
??
O que eu fiz de errado?
Valeu Willy, mto bom o seu tutorial!
Re: Aula 03 - Manipulando o arquivo.ini
Isto acontece porque você está salvando um valor "real" em um campo onde deveria ser "string". Para isso, no ini_write_string, coloque o zero da seguinte forma: string(0); Isso converte real em string.
Ou se preferir, troque o ini_write_string por ini_write_real
Qualquer coisa é so falar.
flws...
Ou se preferir, troque o ini_write_string por ini_write_real
Qualquer coisa é so falar.
flws...
Re: Aula 03 - Manipulando o arquivo.ini
Parabéns velho!
Nota 10 o teu tutorial. Fiz o que eu precisava rapidamente gastando 5 minutos lendo as três aulas.
Nota 10 o teu tutorial. Fiz o que eu precisava rapidamente gastando 5 minutos lendo as três aulas.
PODEROS ARAN- Data de inscrição : 16/12/2011
Reputação : 1
Número de Mensagens : 19
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Aula 03 - Manipulando o arquivo.ini
Muito bom cara muito bom mesmo, eu precisava mesmo disso, bolei um belo sistema de save , valeu Willy, Parabens, otimo tutorial
Re: Aula 03 - Manipulando o arquivo.ini
Willy
Preciso carregar um valor de uma ini para as opções do jogador, porém não posso predefiní-la.
No caso está da seguinte forma
O problema é: não quero que ele configure como 2, e sim que use o valor que está contido na ini... comofas?
Preciso carregar um valor de uma ini para as opções do jogador, porém não posso predefiní-la.
No caso está da seguinte forma
- Código:
ini_read_real("options","tela",2)
O problema é: não quero que ele configure como 2, e sim que use o valor que está contido na ini... comofas?
dharrison- Games Ranking :
Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios :
x 0 x 9 x 0
x 0 x 1 x 0
x 0 x 0 x 1
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 2.0
- C#
Re: Aula 03 - Manipulando o arquivo.ini
Os valores default só entram em cena quando o INI não encontra a chave na seção. Portanto, se você está tentando carregar um valor do INI mas o mesmo não corresponde ao esperado, significa que o o INI não está carregando, logo, um erro na programação.
Re: Aula 03 - Manipulando o arquivo.ini
Se você não achar o erro, usa o file_exists() para ver se o caminho ao arquivo está certo! (lembrando que precisa estar na mesma pasta do jogo, no caso do GM8, e no included files no caso do GMS)
Gabreel- Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Javascript
- Outros
Re: Aula 03 - Manipulando o arquivo.ini
Ja verifiquei o arquivo, ele esta alterando corretamente.
Porém acho que não estou conseguindo fazer a variável lê-lo, pois mesmo mudando o default nada acontece.
É assim que se atribui o valor da ini a variavel?
Porém acho que não estou conseguindo fazer a variável lê-lo, pois mesmo mudando o default nada acontece.
- Código:
escolha1=
ini_open("userconfig.cfg");
ini_read_real("options","tela",0);
ini_close()
É assim que se atribui o valor da ini a variavel?
dharrison- Games Ranking :
Notas recebidas : A - B
Data de inscrição : 04/02/2009
Reputação : 120
Número de Mensagens : 1363
Prêmios :
x 0 x 9 x 0
x 0 x 1 x 0
x 0 x 0 x 1
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 2.0
- C#
Re: Aula 03 - Manipulando o arquivo.ini
Ah, é por isso... Me desculpe, eu não reparei isso no primeiro código.
ini_read_* retorna um valor, portanto, a variável que deve ser atualizada deve estar antes do comando da seguinte forma:
ini_read_* retorna um valor, portanto, a variável que deve ser atualizada deve estar antes do comando da seguinte forma:
- Código:
ini_open("userconfig.cfg");
escolha1 = ini_read_real("options","tela",0);
ini_close();
Re: Aula 03 - Manipulando o arquivo.ini
Se tiver apenas 1 arquivo ini no jogo, não terá a necessidade de fecha-lo?
Última edição por DUDU951 em Sáb 28 Jun 2014, 21:39, editado 1 vez(es)
DUDU951- Data de inscrição : 24/06/2014
Reputação : 2
Número de Mensagens : 90
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Aula 03 - Manipulando o arquivo.ini
DUDU951 escreveu:1 arquivo ini pode salvar apenas 1 seção, chave, valor por vez?
Se tiver apenas 1 arquivo ini no jogo, não terá a necessidade de fecha-lo?
1- Você pode salvar vários valores em uma seção, na chave somente um, a chave representa a variável que vai guardar o valor. Exemplo.
- Código:
[Configuracao do server]//Seção
//Chave = valor
Porta = 888
Tópicos semelhantes
» [DUVIDA] Manipulando arquivos externos em arquivo ZIP
» [Vídeo-Aula]Aula 4.1 - Usando funções básicas do draw
» Aula 3 - Puzzle - Todas os Modos da Aula 3 Aqui!
» Manipulando Janelas
» Manipulando Arquivos e informações - Parte 1
» [Vídeo-Aula]Aula 4.1 - Usando funções básicas do draw
» Aula 3 - Puzzle - Todas os Modos da Aula 3 Aqui!
» Manipulando Janelas
» Manipulando Arquivos e informações - Parte 1
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos