Conectar-se

Esqueci minha senha

Últimos assuntos
» colisão de queda após outra colisão dando problema
Hoje à(s) 18:08 por Lighter

» [Duvida] O que aprender
Hoje à(s) 15:32 por Markituh

» BUILD FAILED: Cannot find BUILD.xml
Hoje à(s) 14:50 por ReisBlender

» Nota de esclarecimento - GMBR voltou!
Sex 23 Jun 2017, 20:33 por Willy

» Regras do Fórum
Sex 23 Jun 2017, 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Jogo Dengue HTML
Seg 30 Nov 2015, 16:17 por guga

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Ordenar variavel em ordem decrescente
Sex 28 Ago 2015, 21:09 por Kodained

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Problema com Colisão
Qui 27 Ago 2015, 12:30 por The_Game

» Quem quer Uma Engine, e de Quê?
Qui 27 Ago 2015, 09:22 por theguitarmester

» [RESOLV]Como adicionar 2 objetos na mesma posição?
Qua 26 Ago 2015, 11:38 por Bhryenno Kelvyn Carlson

» Sistema de porta!!!
Ter 25 Ago 2015, 21:29 por theguitarmester

» Venda de objetos em Inventário - Multiplicado
Seg 24 Ago 2015, 18:33 por AG Hydra

» Atirar na direção certa
Seg 24 Ago 2015, 09:03 por theguitarmester

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Problemas na compilação android
Dom 23 Ago 2015, 23:43 por Zero.

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Como estabilizar um som
Sab 22 Ago 2015, 19:03 por Isquilo_Roedor

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» Sobre instance Creation Code
Sab 22 Ago 2015, 08:39 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» Como fazer um temporizador
Sex 21 Ago 2015, 19:02 por Isquilo_Roedor

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

Quem está conectado
32 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 31 Visitantes

ReisBlender

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36

[XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

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

[XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por vinians em Ter 03 Maio 2011, 11:29

Nome Armazenamento de Variáveis
Plataforma Game Maker 7, 8
Descrição Aprenda como armazenar e recuperar facilmente o valor das variáveis
Nivel Intermediário
Ola pessoal, hoje vou mostrar a vocês como armazenar facilmente as variáveis do seu jogo. Primeiro, vamos relembrar quais os tipos de variáveis temos em um programa no Game Maker. Em relação a escopo, existem 3 tipos de variáveis no GM:
  • Públicas

    As variáveis públicas pode ser utilizadas em qualquer
    objeto no jogo e seu valor é global não importando onde
    você esteja. Para cria-las utilize a instrução global ou globalvar sendo que utilizando globalvar você não precisa usar global.variavel toda vez que quizer utiliza-la, por isso vamos utilizar essa última sintaxe.
  • de Instância

    Esse tipo de variável é criada dentro de um Evento e seu valor prevalece enquanto a instância existir.
  • Temporárias

    Esta é criada com a palavra resevar "var"
    e seu valor so tem sentido no escopo do Evento em que foi declarada.
    É muito conveniente para criar variáveis
    temporárias e não ficar "gastando" variáveis de
    instância a toa. Simplifica o código.


Agora que vimos quais os tipos de variáveis existem vamos ao trabalho! Primeiro vamos gravar nossas variáveis públicas. Suponha que estamos fazendo um jogo de RPG e temos que armazenar os dados do jogador:



globalvar avatar_nome; //nome do personagem
globalvar avatar_hp; //total de energia
globalvar avatar_mp; //total de magia
globalvar avatar_nivel; //nivel
globalvar avatar_classe; //guerreiro, mago, ladrão, etc

Agora que sabemos quais variáveis vamos gravar eu vamos criar 2 scripts, um para gravar e outro para ler os valores de volta.

Va até a aba Scripts e crie um script chamado scr_grava_globais:


var texto, linha;
texto = file_text_open_write("jogo.sav"); // nome do arquivo
linha = 'avatar_nome=' + quote(avatar_nome);
file_text_write_string(texto, linha); file_text_writeln(texto);
linha = 'avatar_hp=' + string(avatar_hp);
file_text_write_string(texto, linha); file_text_writeln(texto);
linha = 'avatar_mp=' + string(avatar_mp);
file_text_write_string(texto, linha); file_text_writeln(texto);
linha = 'avatar_nivel=' + string(avatar_nivel);
file_text_write_string(texto, linha); file_text_writeln(texto);
linha = 'avatar_classe=' + quote(avatar_classe);
tile_text_close(texto);

Pronto, agora basta chamar este script que teremos o nosso arquivo "jogo.sav" com as nossas variáveis globais salvas.

Você pode chamar o script a qualquer movomento para gravar o progresso do jogador. Para chamar um script no GM apenas coloque o seu nome seguido dos parentesis. assim: scr_grava_globais(), como não temos parametros os parêntesis ficam vazios.

Agora vamos criar um script que fara a leitura desses dados e a atribuição dos valores às variáveis globais corretas. Esse inclusive é bem menor que o de gravação e bem simples também. Vá até a aba Scripts e crie um script chamado scr_le_globais:

var texto, linha;
texto = file_text_open_read("jogo.sav");
while not file_text_eof(texto) 
{
   linha = file_text_read_string(texto);
   file_text_readln(texto);
   execute_string(linha); //executa a linha e atribui a variavel
}
file_text_close(texto);

Ok, agora basta executar esse script em qualquer parte do código para ler o valor das variáveis que está armazenado no arquivo. Para chama-lo apenas escreva scr_le_globais() em um Evento qualquer.

Antes de terminarmos, observe que usei um script chamado quote() no script scr_grava_globais(). Esse script é apenas para simplificar a escrita do código e o que ele faz é colocar aspas em uma string. Vamos a ele:

var str;
str = argument0;
return '"' + str + '"';

É isso, vá até a aba Scripts e crie um novo script com o nome de Quote e então coloque esse código acima.

Então pessoal, como esse esquema da pra criar facilmente scripts que armazenam qualquer variável e automaticamente lê o valor para a variável corretamente sem ter que criar nenhuma rotina ou pharser.

Até a próxima!
avatar
vinians

Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1

Ver perfil do usuário http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por PedroX em Ter 03 Maio 2011, 12:35

Eu ja havia visto esse topico hoje, mas não deu para comentar.
Seu tutorial ficou bem legal.
Está tudo bem explicado. Acho que faltou algumas coisinhas, mas mesmo assim ficou interessante.

FLW

PedroX

Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6034
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por vinians em Ter 03 Maio 2011, 12:50

Pois então eu costumo usar um código parecido em meus games. A vantagem desse tipo de abordagem é que a leitura dos valores se torna extremamente simples pois usa aprópria atribuição do Gm.
Obrigado por comentar!
avatar
vinians

Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1

Ver perfil do usuário http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por Mannoroth em Ter 03 Maio 2011, 16:59

Boa. Uma pergunta: é possivel usar essa armazenagem de dados(variaveis) em jogos multiplayer online?
avatar
Mannoroth

Ranking : Nota D
Notas recebidas : D+D
Data de inscrição : 05/10/2010
Número de Mensagens : 836
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por Tiago Lima em Ter 03 Maio 2011, 18:56

Legal seu tuto, claro como sempre.

Uma forma que eu acho que tambem pode se utilizar esse método é para aqueles jogos que o desenvolvedor não quer ficar traduzindo o jogo para vários idiomos, assim dá pra deixar a cargo dos fãs traduzirem apenas trocando as strings das váriaveis e salvando o arquivo com o nome do idioma, tem muito jogo desses livres que implementam isso, tambem é comum essa tecnica em scripts php que são utilizados no mundo toda.

Bem, eu creio que com criatividade o que não falta são formas de aplicar esse tuto.
avatar
Tiago Lima

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 14/07/2008
Número de Mensagens : 199
Insígnias de JAM :

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

Ver perfil do usuário http://www.youtube.com/user/CanalNexteLevel

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por vinians em Ter 03 Maio 2011, 19:03

@Mannoroth escreveu:Boa. Uma pergunta: é possivel usar essa armazenagem de dados(variaveis) em jogos multiplayer online?
Olha, daria pra armazenar sim, mas o sistema de arquivos não é rapido suficiente para responder sem lag no jogo, não ser que fosse um jogo de turnos. A melhor maneira mesmo para jogos on line é usar uma DLL commo 39dll ou semelhante.

tblima123 escreveu:Legal seu tuto, claro como sempre.

Uma forma que eu acho que tambem pode se utilizar esse método é para aqueles jogos que o desenvolvedor não quer ficar traduzindo o jogo para vários idiomos, assim dá pra deixar a cargo dos fãs traduzirem apenas trocando as strings das váriaveis e salvando o arquivo com o nome do idioma, tem muito jogo desses livres que implementam isso, tambem é comum essa tecnica em scripts php que são utilizados no mundo toda.

Bem, eu creio que com criatividade o que não falta são formas de aplicar esse tuto.
Pior que dá mesmo! Poderia criar um arquivo chamado por exemplo linguagem.scr (script de linguagem) que teria as variaveis usadas intenamentes pelo sistema atribuidas diretamente no arquivo. Ótima sacada!
Flws!
avatar
vinians

Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1

Ver perfil do usuário http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por Desconectado321 em Ter 03 Maio 2011, 19:41

excelente tutorial vinians, eu estava vendo quase tudo que aparece pela frente sobre variáveis, vi aquele tuto do saim e por aí vai... agora vejo esse tutorial, muito bom!
avatar
Desconectado321

Ranking : Nota C
Notas recebidas : E-D-A-D
Data de inscrição : 13/03/2011
Número de Mensagens : 272
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por Shadow10 em Ter 03 Maio 2011, 20:28

Muito bom seu tuto vinians, eu passei a gostar ainda mais de GML.
avatar
Shadow10

Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/11/2010
Número de Mensagens : 429
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por Anderson3d em Ter 03 Maio 2011, 21:38

como sempre ótimo tutorial, por isso se destaca como um dos mestres da GMBR hehehe...
usarei em meus futuros projetos... Happy
avatar
Anderson3d

Ranking : Nota A
Notas recebidas : A - A
Data de inscrição : 15/02/2009
Número de Mensagens : 1479
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1

Ver perfil do usuário http://www.indiegamebr.com

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por vinians em Qua 04 Maio 2011, 10:25

@Desconectado321 escreveu:excelente tutorial vinians, eu estava vendo quase tudo que aparece pela frente sobre variáveis, vi aquele tuto do saim e por aí vai... agora vejo esse tutorial, muito bom!
Pois é, variáveis são uma das partes mais importantes da GML pois precisamos conhece-las bem pra poder fazer scripts mais sofisticados, por isso acho que conhecimento sobre elas nunca é demais...

@Shadow10 escreveu:Muito bom seu tuto vinians, eu passei a gostar ainda mais de GML.
É assim mesmo, enquanto mais aprendemos mais gostamos, pois podemos explorar mais a potencialidade do GM.

@Anderson3d escreveu:como sempre ótimo tutorial, por isso se destaca como um dos mestres da GMBR hehehe...
usarei em meus futuros projetos... Happy
E ae Anderson3D, vindo de você é um elogio e tanto pois tú é fera meu irmão heheheh!

Obrigado pessoal pelo feedback, espero criar mais tutoriais em breve.
Flws
avatar
vinians

Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

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

Prêmios
   : 0
   : 2
   : 1

Ver perfil do usuário http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [XCREATOR] [TUTORIAL] Armazenamento e Recuperação Automática de Variáveis

Mensagem por Conteúdo patrocinado


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