GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game maker
por Ralphed Ontem à(s) 18:28

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16


[Tutorial] Sistema de Recordes com arquivo .ini

+2
fbixd
irlansn
6 participantes

Ir para baixo

[Tutorial] Sistema de Recordes com arquivo .ini Empty [Tutorial] Sistema de Recordes com arquivo .ini

Mensagem por irlansn Dom 05 Fev 2012, 21:50

Nome: Sistema de Recordes com arquivo .ini
Categoria: Tutorial
Plataforma: Game Maker 8 PRO
Nível: Iniciante
Créditos: 100% da Intec
(Link removido, não é permitido postar o link, só o nome nos créditos)
[Tutorial] Sistema de Recordes com arquivo .ini Creditosrg

Introdução

Vou explicar como criar um sistema de recordes personalizado, desda programação até o designer. E para isso vou usar os recursos dos arquivos .ini que servem para guardar informações, neste caso vamos usar para guardar os valores dos recordes, para saber mais sobre arquivos .ini: aula 1, aula 2 e aula 3
Por que usar arquivos .ini?

Entre vários motivos podemos destacar, que se usássemos outros métodos de armazenamento de informações, como ds_lists e arrays, os valores iriam se perder ao reiniciar o jogo(voltaria a ser 0) usando arquivos ini, podemos reiniciar o aplicativo quantas vezes quiser que o recorde continuara gravado, a não ser que movamos o aplicativos da pasta que esta o arquivo ini.

Pre-requisitos

Só será necessário um novo objeto no seu jogo. Eu dei o nome de: obj_SRecordes
Saber o básico de arquivos .ini(não é muito necessário, apenas recomendado): Aula



1°-Criando o arquivo .ini e os valores

Não existe um código especifico para criar o arquivo .ini, ele é criado instantaneamente quando tentamos ler e ele não existir. O que facilita muito, evitando a necessários de mais arquivos acompanhando o .exe para o jogo rodar corretamente e evitando a necessidade de mais códigos para a criação do arquivo. Com isso o código no create do obj_SRecordes fica assim:
Código:
//INICIAR SISTEMA DE RECORDES POR INI

NumeroLugares=3//defina quantos lugares quer gravar aqui

ini_open("recordes.ini")//abre o arquivo "recordes.ini", se ele não existir: cria

for (i = 0; i < NumeroLugares; i += 1)//repete o código, o numero de lugares escolhidos
{
    NovoLugar=string(i)//transforma o lavor de [i] em uma string(coloca entre aspas), e guarda na variável NovoLugar
    if !(ini_key_exists("lugares",NovoLugar))//se não existir o "NovoLugar"
    {
        ini_write_real("lugares",NovoLugar,0)//cria o "NovoLugar"
    }
}

ini_close()//fecha o arquivo .ini que esta sendo usado (recordes.ini)

Informações adicionais:
INI_OPEN(“ARQUIVO.INI”):
ini_close():
INI_KEY_EXISTS(SEÇÃO,CHAVE):
INI_WRITE_REAL(SEÇÃO,CHAVE,VALOR):
for:
2°-Redefinindo os valores(Novo recorde)

Não ha um lugar especifico para colocar esta função, use-a sempre que for definir um novo recorde.
Não existe uma função especifica para fazer isso, até porque estamos criando um novo sistema de recordes. Então eu criei o código abaixo:

Código:
//ADICIONAR NOVO RECORDE

for (i = 0; i < NumeroLugares; i += 1)//repete o codigo, o numero de lugares escolhidos
{
    ini_open("recordes.ini")
    Lugar=ini_read_real("lugares",string(i),0)//procura no arquivo ini, qual é o recorde do lugar indicado pela variavel i da [for]. E grava na variavel Lugar
   
    if score > Lugar//se score for maior que o lugar indicado pela variavel i da [for]
    {//quer dizer que score quebrou o recoude do lugar indicado pela variavel i da [for]
        ini_write_real("lugares",string(i),score)//grava no arquivo ini a pontuação do novo recorde
        ini_close()
        exit;//como a [for] vai continuar encontrando os outrus lugares menores que o score, exit fecha o codigo, para preservar o valor dos outros lugares
    }
}
O código ficou um pouco complicado, mas acho que expliquei bem.
Informações adicionais:
INI_READ_REAL(SEÇÃO,CHAVE,DEFAULT):
INI_WRITE_REAL(SEÇÃO,CHAVE,VALOR):
for:

3°-Desenhando o "pódio"


Isso é muito pessoal, cada um organiza como quê, então vou passar apenas o básico e as posições x's, y's, cores e tamanhos você é que definirá melhor:
Código:
//DESENHAR RECORDES

ini_open("recordes.ini")
for (idraw = 0; idraw < NumeroLugares; idraw += 1)//repete o codigo, o numero de lugares escolhidos
{
var Lugar;
Lugar=ini_read_real("lugares",string(idraw),0)//procura no arquivo ini, qual é o recorde do lugar indicado pela variável idraw da [for]. E grava na var Lugar
draw_text(10,idraw*16,string(idraw)+": "+string(Lugar))//desenha o recorde
}

ini_close()

Dica:

4°-Entendendo melhor o código

Aqui vou explicar como esta salvo os recordes no arquivo ini, caso você queira fazer augo diferente isso é útil:
Dentro do arquivo tem umas "pastas" que servem para organizar o arquivo:
ARQUIVO>SEÇÃO>CHAVE>VALOR
ARQUIVO:
SEÇÃO:
CHAVE:
Valor:
Ou seja se quiser encontrar o score do terceiro lugar, por exemplo, use:
Código:
terceiro=ini_read_real("lugares","3",0)



Aqui esta uma engine do tutorial:
Download

5°-O resultado

Aqui esta exemplos de jogos que usaram esse sistema de recordes:
Um jogo meu:
E na engine do tutorial:


..::Créditos::..
[Tutorial] Sistema de Recordes com arquivo .ini Creditosrg
irlansn
irlansn

Games Ranking : Nota C

Notas recebidas : B+D
Data de inscrição : 18/01/2011
Reputação : 5
Número de Mensagens : 482
Prêmios : [Tutorial] Sistema de Recordes com arquivo .ini Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Sistema de Recordes com arquivo .ini Empty Re: [Tutorial] Sistema de Recordes com arquivo .ini

Mensagem por fbixd Ter 21 Fev 2012, 18:06

Vlw,me ajudou bastante...
fbixd
fbixd

Data de inscrição : 18/01/2012
Reputação : 1
Número de Mensagens : 85
Prêmios : [Tutorial] Sistema de Recordes com arquivo .ini Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Sistema de Recordes com arquivo .ini Empty Re: [Tutorial] Sistema de Recordes com arquivo .ini

Mensagem por theguitarmester Qua 09 maio 2012, 13:26

ta meio estranho esses jogos que você mostrou
imagem do seu jogo:

como o 2°lugar tem o SCORE maior que o primeiro, e maior que o terceiro???
theguitarmester
theguitarmester

Games Ranking : Nota C

Notas recebidas : B + C
Data de inscrição : 28/02/2012
Reputação : 139
Número de Mensagens : 2209
Prêmios : [Tutorial] Sistema de Recordes com arquivo .ini Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 2 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Plataformas :
  • Unity


http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Ir para o topo Ir para baixo

[Tutorial] Sistema de Recordes com arquivo .ini Empty Re: [Tutorial] Sistema de Recordes com arquivo .ini

Mensagem por peixoto Qua 09 maio 2012, 15:15

otimo tutorial!

As .ini são muito boas, pelo que sei da para fazer savegames nela e agora sistema de recordes Happy

Vou tentar fazer SaveGames e esse sistema de Recordes em .ini no meu proximo jogo!
peixoto
peixoto

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 14/02/2010
Reputação : 3
Número de Mensagens : 911
Prêmios : [Tutorial] Sistema de Recordes com arquivo .ini Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Sistema de Recordes com arquivo .ini Empty Re: [Tutorial] Sistema de Recordes com arquivo .ini

Mensagem por irlansn Qui 24 maio 2012, 23:45

theguitarmester escreveu:ta meio estranho esses jogos que você mostrou
imagem do seu jogo:

como o 2°lugar tem o SCORE maior que o primeiro, e maior que o terceiro???
kkk, é porque eu dei o Print-screen, quando não tava pronto ainda, estava com bug's..... Mas logo corrigirei isso!

E as outras respostas, muito obrigado!
irlansn
irlansn

Games Ranking : Nota C

Notas recebidas : B+D
Data de inscrição : 18/01/2011
Reputação : 5
Número de Mensagens : 482
Prêmios : [Tutorial] Sistema de Recordes com arquivo .ini Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Sistema de Recordes com arquivo .ini Empty Re: [Tutorial] Sistema de Recordes com arquivo .ini

Mensagem por Neofix Seg 05 Nov 2012, 16:58

O Codigo esta errado.
Ao acrescentar um novo recorde ele nao atualiza as demais posições.
Aqui esta a versao correta:

Código:

//ADICIONAR NOVO RECORDE

recordeanterior=0;

for (i = 0; i < NumeroLugares; i += 1)//repete o codigo, o numero de lugares escolhidos
{
    ini_open("recordes.ini")
    Lugar=ini_read_real("lugares",string(i),0)//procura no arquivo ini, qual é o recorde do lugar indicado pela variavel i da [for]. E grava na variavel Lugar
   
    if score > Lugar//se score for maior que o lugar indicado pela variavel i da [for]
    {//quer dizer que score quebrou o recoude do lugar indicado pela variavel i da [for]

        recordeanterior=ini_read_real("lugares",string(i),score);//NEOFIX
        ini_write_real("lugares",string(i),score)//grava no arquivo ini a pontuação do novo recorde
        score=recordeanterior;//NEOFIX
        //exit;//como a [for] vai continuar encontrando os outrus lugares menores que o score, exit fecha o codigo, para preservar o valor dos outros lugares
    }
    ini_close();
}
Neofix
Neofix

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 19/01/2009
Reputação : 7
Número de Mensagens : 98
Prêmios : [Tutorial] Sistema de Recordes com arquivo .ini Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

[Tutorial] Sistema de Recordes com arquivo .ini Empty Re: [Tutorial] Sistema de Recordes com arquivo .ini

Mensagem por Luiz A. Oliveira Seg 05 Nov 2012, 17:54

Não querendo dar off topic, mas seria bom deixar esse arquivo fora do alcance do usuário, em uma pasta que ele não possa alterar o arquivo. Ou também deixar o arquivo oculto ou em "somente leitura".

Até+
Luiz A. Oliveira
Luiz A. Oliveira

Games Ranking : Nota C

Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Reputação : 5
Número de Mensagens : 914
Prêmios : [Tutorial] Sistema de Recordes com arquivo .ini Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://luizgm.blogspot.com/

Ir para o topo Ir para baixo

[Tutorial] Sistema de Recordes com arquivo .ini Empty Re: [Tutorial] Sistema de Recordes com arquivo .ini

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos