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
» player não consegue andar
por 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


[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 : 2211
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


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