Fusion Makers
Faça login para usufruir de todos nossos recursos. Ainda não tem uma conta? Inscreva-se já!
Conectar-se

Esqueci minha senha

Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
3 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 3 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 65 em Sex 01 Abr 2016, 22:48
Estatísticas
Temos 255 usuários registrados
O último usuário registrado atende pelo nome de LuckN

Os nossos membros postaram um total de 5264 mensagens em 574 assuntos

Criando um sistema de save e load game

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

Criando um sistema de save e load game

Mensagem por Davimmf2 em Qui 17 Abr 2014, 16:57

Oi pessoal!
Muitas pessoas querem fazer saves pros seus jogos, mas não conseguem. Hoje, com um tuto baseado no do silas, vou ensinar a vocês a criar saves e carregá-los, usando a extensão datastore ok? então vamos lá.

Ingredientes:

  • MMF2,TGF ou MMF1.5 (como se isso não fosse óbvio);
  • Extensão DataStore (Clique aqui para download da extensão)


Introdução
O que é datastore?
Datastore é uma extensão usada para guardar dados e carregá-los, sendo que pode ser usada para um vasto número de finalidades, como, por exemplo, criar saves. Essa extensão permite a você armazernas flags, strings e valores numéricos.
Nesse tutorial, aprenderemos a usar essa extensão muito útil.

1. Inserindo a extensão
Primeiro, abra seu MMF2.Insira a extensão Data Store, no mmf2 ela está com o nome de "Data Store 2 Object"
Veja a imagem:


2.Na prática
Isso vai servir só para teste, e para você ter uma noção de como funciona a extensão Crie um counter e três botões.
O botão 1 deve se chamar "Adicionar", o segundo deve se chamar "Subtrair", e o terceiro, deve se se chamar "Salvar"
Crie os eventos para os botão "Adicionar" e para o botão "Subtrair":
(botão Adicionar) Button clicked?>(Counter) Add 1 to counter
(botão Subtrair) Button clicked?>(Counter) Subtract 1 from counter
Explicando: isso vai fazer com que quando o botão 1 for clickado, adicionar 1 ao conter, e quando o botão 2 for clicado, subtrair 1 do counter, fácil, não?

Definindo os valores do Datastore
O Datastore tem vários campos para você armazenar valores. Esses campos são chamados slots, e são divididos em strings, que você pode armazenar no máximo 50 strings, flags, que você pode armazenar no máximo 1000 e por fim, valores numéricos, no qual vão de 0 a 999, ou seja, mil valores numéricos pra você armazenar. você pode definir o valor que você quiser do slot que você quiser, entre 0 e 999.

Bom, agora, crie a condição: Button Salvar clicked?, depois, crie a ação: vá no datastore, em values, click em change a value,vai aparecer uma janela, coloque 0, e depois, vai aparecer outra janela. Digite: Value(counter 1).

Pra quem não entendeu, vai aí o código:
(Botão Salvar) Button clicked? >
(Datastore): Set Value 0 to value (counter 1)
(Datastore): Save to file(*****)

Há também outros modos de armazenamento:

____________________________________
Salvando flags - ligar uma flag:
(Botão Salvar) Button clicked? > (datastore) vá no menu "flags" e click em "set flag on", e selecione qual flag vc vai ligar

Desligar uma flag:
(Botão Salvar) Button clicked? > (datastore) vá no menu "flags" e click em "set flag off", e selecione qual flag vc vai desligar

Salvando strings:
(Botão Salvar) Button clicked? > (datastore)String>change a string>selecione qual slot você quer gravar>depois coloque a string q vc quer alterar.
____________________________________

Explicando: isso vai definir o valor do slot 0 do datastore pro valor do counter.
Também vai salvar todo o conteúdo do datastore para um arquivo. Existem várias maneiras de salvar seu arquivo, eu mostrarei abaixo:

(Nota: obrigado pelo Silas pela explicação.)
Há códigos úteis que servem para indicar o nome do arquivo.
esses códigos podem ser colocados em especial->filenames. Veja abaixo:

Tipo 1:local direto da pasta.
Esse método não é recomendando, pois para criar os saves você tem que ter essa pasta.Caso não tenha, ele não cria o save.
Exemplo:

Código:
appdir$+"c:/disco local/meus arquivos/meus jogos/meu jogo/meusave.sav"
o "appdir$" é como a direção de onde a pasta esta.Serve para o mmf2 abrir o arquivo, o meusave.sav.
Sempre coloque o destino da pasta entre aspas, pois se não colocar pode haver erro, pois quando a pasta tem espaço entre o nome, como “meus jogos”, isso pode confundir o mmf2.

Tipo 2:
Local simples
Esse tipo pode ser usado tanto na mesma pasta do jogo, quando em uma pasta dentro da pasta do jogo.

Exemplo 1:
Código:
appdrive$+appdir$+"savedojogo.sav"

Exemplo 2:
Código:
appdrive+appdir$+"data/savedojogo.sav"

o 1° exemplo mostra que o save esta na mesma pasta do .exe,ou seja,ele é criado/carregado se estiver na mesma pasta.
o 2° exemplo do código fica melhor.se seu jogo tem uma pasta data,ele ira criar/carregar o save que esta nessa pasta.

Esses códigos podem ser usados no processo de salvação do datastore.
Para você colocar esses códigos úteis: vá no datastore>storage>load>expression> coloque aqui a expressão para carregar o arquivo



Agora, teste sua aplicação. Quando você clica no botão 1, adiciona 1 ao counter. Quando você clica no botão 2, subtrai um ao counter, e quando vc clica no botão 3, salva os valores.

Mas, como eu carrego os dados salvos?
é como salvar:
crie um evento:
start of frame: datastore>storage>load>expression>agora é só colocar aqui a mesma expressão que vc usou pra salvar.

Agora, quando você altera,ou seja, adiciona ou subtrai ao valor do counter ,sai e abre de novo,está do mesmo jeito de quando você apertou o botão 3 e saiu.



Bem, isso é o datastore!, podem ver que é bem simples, e mais fácil que armazenar em outros métodos, como em ini's e arrays, e também é muito mais fácil que em passwords, pq é mais difícil.

levou umas três horas pra eu fazer essa matéria, finalmente, terminei  Wink 
flw
avatar
Davimmf2
Usuário

Mensagens : 155
Data de inscrição : 19/03/2014
Localização : Num planeta Muuuito distante, a 360 milhões de km da Terra: Marte

Ver perfil do usuário

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